我發現使用@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