我发现使用@Nullable和@Nonnull注释参数和返回值非常方便。@Nullable Eclipse分析无法正常工作
然而,Eclipse分析似乎有点片面。我觉得follwing情况是真的很烦人:
public class SomeEntity {
private SomeObj someObj;
public void setSomeObj(@Nullable SomeObj someObj) {
this.someObj = someObj;
}
@Nullable public SomeObj getSomeObj() {
return someObj;
}
public boolean hasNewSomeObj() {
return someObj != null;
}
}
现在,当我提出以下称它给了我下面的Eclipse警告为错误: “潜在的空指针访问:该方法getZuordnenMitDatenuebernahme()可能返回null “
if(someEntity.hasNewSomeObj()) {
someOperator.doStuff(someEntity.getSomeObj().getSomething());
}
即使如此,Null检查也被前面的方法调用覆盖。
有没有人有如何处理这个问题的好建议?我真的想保留我的注释返回值。
的Eclipse:朱诺第1版
的Java:1.6
JSR305实现:com.google.findbugs.jsr305 2.0.1
这是Java 7还是Java 8(Eclipse在处理这些Java 8的方式上有变化)? –
你所能做的就是使用'getSomeObj'方法并测试null。 –
这将是一种耻辱,这种情况已经被大大降低了。还有其他一些情况有点复杂。 – dngfng