我在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;
}
是否可以解决此问题?
感谢您的回复!
答案 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