Mou*_*415 5 java javadoc invariants
我想知道评论的确切位置以及我应该使用什么关键字,因为我似乎真的无法在网上找到示例,例如我应该这样做吗?
/**
* @invariant invariant example
*/
public class Example {
}
Run Code Online (Sandbox Code Playgroud)
有几种可能
一些例子
@Contract("_, null -> null") - 如果第二个参数为 null,则方法返回 null。
@Contract("_, null -> null; _, !null -> !null") - 如果第二个参数为 null,则方法返回 null,否则返回 not-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方法,我们有以下无效参数的例外(会破坏类不变性的参数)
- 如果此映射不支持 put 操作,则@抛出 UnsupportedOperationException
- 如果指定键或值的类阻止将其存储在此映射中,则@抛出 ClassCastException
- 如果指定的键或值为空并且此映射不允许空键或值,则@抛出 NullPointerException
- 如果指定键或值的某些属性阻止将其存储在此映射中,则@抛出 IllegalArgumentException
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |