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

时间:2016-07-21 19:48:43

标签: java intellij-idea annotations

我已经看到IntelliJ IDEa在某些方法方面有一点@标记,当它可以静态地推断合同已经满足时。

例如,在以下代码中:

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

Te IDE建议使用以下@Contract:@Contract("null, _ -> fail")。 IntelliJ IDEa可以通过一些命令添加此合同吗?我尝试左/右击,但没有帮助。

此外,这些注释是如何工作的还有很好的解释吗?

1 个答案:

答案 0 :(得分: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的公告博客文章中得到了很好的解释。