如何在IntelliJ IDEa中添加@Contract注释?

3

我看到IntelliJ IDEA在某些方法旁边有一个小的@标记,当它可以静态推断出合同已经满足时。

例如,在以下代码中:

public void method(Object arg1, Object arg2){
   assert arg1 != null;
   //Do something..
}

IDE建议使用以下@Contract:@Contract(“null,_ -> fail”)。 IntelliJ IDEA是否可以通过某些命令添加这些合同?我尝试了左/右单击,但没有帮助。

还有,有没有对这些注释如何工作的好解释?

1个回答

4
静态推断的合约注释被代码分析作为显式注释使用,因此实际上不需要显式添加它们。但如果您仍想添加它们,只需将文本光标放在方法名称上,然后按Alt+Enter并调用Insert '@Contract(value = "XXX")'意图即可。此意图在设置中称为Make Inferred Annotations Explicit
@Contract 意图的语法和用法在2013-10-21的公告博客文章中得到了很好的解释:Better Control Flow Analysis with Contract Annotations and IntelliJ IDEA 13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接