我已经看到IntelliJ IDEa在某些方法方面有一点@
标记,当它可以静态地推断合同已经满足时。
例如,在以下代码中:
public void method(Object arg1, Object arg2){
assert arg1 != null;
//Do something..
}
Te IDE建议使用以下@Contract:@Contract("null, _ -> fail")
。 IntelliJ IDEa可以通过一些命令添加此合同吗?我尝试左/右击,但没有帮助。
此外,这些注释是如何工作的还有很好的解释吗?
答案 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的公告博客文章中得到了很好的解释。