IntelliJ IDEA合约为非null返回值

时间:2015-10-09 08:55:02

标签: java intellij-idea

我在IntelliJ IDEA 14.1.5中使用@contract Java注释 但在这种情况下似乎无法正常工作:

private String name;

void setName(String name) {
    this.name = null;     // for test
}

@Contract("-> !null")
String getName() {
    return this.name;
}

是否可以解决此问题?

感谢您的回复!

1 个答案:

答案 0 :(得分:1)

Console.WriteLine(string.Join(string.Empty, playerStuff)); 位于方法@Contract("-> !null")上。这意味着当您在与getName的条件比较中调用getName时,IntelliJ将警告您条件始终为false并提供简化代码。在您的示例中,没有对null的调用,因此没有明显的效果。

getName

如果您想让IntelliJ在尝试将public class A { @Contract("-> !null") String getName() { return "jimmy"; } void method() { if (getName() == null) { // for test System.out.println("null"); } } } 分配给变量null时向您发出警告,请在该字段上使用name注释。

@NotNull