我已经看到IntelliJ IDEa在某些方法的一边有这个小@
标记,当它可以静态地推断合同得到满足时。
例如,在以下代码中:
public void method(Object arg1, Object arg2){
assert arg1 != null;
//Do something..
}
Te IDE提出以下@Contract:@Contract("null, _ -> fail")
。 IntelliJ IDEa可以通过一些命令添加此合同吗?我尝试左/右击,但没有帮助。
此外,这些注释是如何工作的还有很好的解释吗?
静态推断的合同注释被代码分析用作显式注释,因此实际上不需要显式添加它们。但是如果您仍想添加它们,只需将文本光标放在方法名称上,然后按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的公告博客文章中得到了很好的解释。