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

问题描述 投票:2回答:1

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

例如,在以下代码中:

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

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

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

java intellij-idea annotations
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的公告博客文章中得到了很好的解释。

© www.soinside.com 2019 - 2024. All rights reserved.