如何将Java doc作为一个类的不变量?

时间:2016-11-08 22:18:35

标签: java javadoc invariants

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

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

1 个答案:

答案 0 :(得分:4)

有一些可能性

@Contract annotations

一些例子

  
      
  • @Contract(“_,null - > null”) - 如果第二个方法,则返回null   参数为null。

  •   
  • @Contract(“_,null - > null; _,!null - >!null”) -   如果第二个参数为null,则返回null,而不是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方法,我们有以下无效参数的异常(会破坏类不变的参数)

  
      
  • @throws UnsupportedOperationException如果是put操作             此地图不支持      
        
    • @throws ClassCastException如果指定键或值的类         防止它存储在此地图中
    •   
    • @throws NullPointerException如果指定的键或值为null        并且此映射不允许使用null键或值
    •   
    • @throws IllegalArgumentException - 如果指定键的某些属性         或值可防止它存储在此地图中
    •   
  •