Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为类记录一个不变量?_Java_Javadoc_Invariants - Fatal编程技术网

Java 如何为类记录一个不变量?

Java 如何为类记录一个不变量?,java,javadoc,invariants,Java,Javadoc,Invariants,我想知道评论应该放在哪里,我应该使用什么关键词,因为我似乎无法在网上找到一个例子,我应该这样做吗 /** * @invariant invariant example */ public class Example { } 有一些可能性 @合同注释 一些例子 @Contract(“\ux,null->null”)-如果第二个 参数为空 @合同(“\u0,null->null;\u0,!null->!null”)- 如果方法的第二个参数为null而不是null,则该方法返回null

我想知道评论应该放在哪里,我应该使用什么关键词,因为我似乎无法在网上找到一个例子,我应该这样做吗

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

有一些可能性

@合同注释 一些例子

  • @Contract(“\ux,null->null”)-如果第二个 参数为空

  • @合同(“\u0,null->null;\u0,!null->!null”)- 如果方法的第二个参数为null而不是null,则该方法返回null 否则

  • @契约(“true->fail”)-一个典型的assertFalse()方法 如果将true传递给它,它将引发异常

有关更多详细信息,请参阅

你可以在没有IntelliJ想法的情况下使用它们。IDEA只是对这些注释提供了智能支持。如果确实满足指定的不变量,它将检查方法代码

文本描述 这种方法并不涵盖所有情况。对于字段之间更复杂的依赖关系,您需要使用英语单词描述不变量

比如说,

如果映射以前包含键的映射,则旧值将替换为指定值

例外情况 此外,可以使用异常来描述和实施不变量。对于上述
Map.put
方法,对于无效参数(会破坏类不变量的参数),我们有以下异常

  • @如果put操作失败,则引发UnsupportedOperationException 此映射不支持
    • @如果指定键或值的类无效,则引发ClassCastException 防止将其存储在此地图中
    • @如果指定的键或值为null,则引发NullPointerException 并且此映射不允许空键或值
    • @如果指定键的某些属性 或值阻止它存储在此映射中

没有通用的标准方法来做这件事。