2016-11-08 29 views
4

我想知道評論應該去哪裏以及我應該使用哪個關鍵詞,因爲我似乎無法在網上找到示例,我應該舉例說明嗎?如何將Java doc作爲類的不變量?

/** 
* @invariant invariant example 
*/ 
public class Example { 
} 
+3

沒有通用的標準這樣做的方式。 –

回答

4

有幾個possibilites

@Contract註解

一些實例

  • @Contract( 「_,空 - >空」) - 方法返回null如果其第二個 參數爲null。

  • @Contract( 「_,空 - >空;!_,空 - >空」) - 如果其第二個參數是空的,而不是空 否則 方法返回null。

  • @Contract(「true - > fail」) - 典型的assertFalse()方法 如果將true傳遞給它,則會引發異常。

詳情請參閱https://www.jetbrains.com/help/idea/2016.2/contract-annotations.html

你可以在沒有IntelliJ IDEA的情況下使用它們。 IDEA對這些註釋具有明智的支持。它會檢查你的方法代碼是否真的符合指定的不變量。

原文描述

此方法不包括所有情況。對於更復雜的字段之間的依賴關係,您需要使用英文單詞來描述不變量。

例如,https://docs.oracle.com/javase/7/docs/api/java/util/Map.html#put(K,%20V)

如果映射以前包含該鍵的映射關係,則舊值是由指定的值所替代。

例外

另外,異常可以被用來描述和執行不變。對於上述Map.put方法,我們有以下爲無效的參數異常(參數會破壞類不變)

  • 拋出:UnsupportedOperationException異常,如果put操作 不受此地圖支持
    • 拋出: ClassCastException如果指定鍵或值的類別 阻止將其存儲在此映射中
    • @throws NullPointerException如果指定的鍵或值爲空 ,並且此映射不允許null鍵或值
    • @throws IllegalArgumentException如果指定鍵 或值的某些屬性不允許將其存儲在此映射