Справочная информация: анализ нулевого значения Eclipse, способный распознавать потенциальный null с помощью кода.
, например.
void foo(@Nonnull Foobar foobar){
foobar.hashCode();
}
void bar(Foobar foobar){
if(null != foobar && && Math.random()>0.5){
foo(foobar); // generate no error as it never null
foobar.hashCode();
}
foo(foobar); // generate error as it learnt from the if statement, even without @Nullable
foobar.hashCode();
}
Но если я использую вспомогательный метод для предиката if. Затмение сошло с ума.
void bar(Foobar foobar){
if(somethingMakeItReadable(foobar)){
foo(foobar); // may have warning here
foobar.hashCode();
}
foo(foobar);
}
bool somethingMakeItReadable(@Nullable Foobar foobar){
return foobar!=null && Math.random()>0.5;
}
Конечно. жизнь без вспомогательного метода может помочь. Или иметь дополнительную нулевую проверку вне вспомогательного метода. Но они ухудшают читаемость кода. Особенно это может принимать несколько параметров.
Есть ли способ сделать нулевой анализ Eclipse умным, чтобы понимать контекст?