在以下代码中使用snipet
import org.jetbrains.annotations.NotNull;
public class Foo {
public static class Bar {
private int number;
public int getNumber() {
return number;
}
}
public int getNumberFromBar(@NotNull Bar bar) {
return bar.getNumber();
}
}
我使用org.jetbrains中的@NotNull注释告诉IntelliJ的静态分析器函数参数不能为空。然而,当我在此代码上运行FinBugs 3时,它会在
上报告可能的空指针异常return bar.getNumber();
为什么?我在这里错过了什么吗?
在我看来,FindBugs的行为不正确,尤其是当我删除@NotNull注释时,FindBugs没有报告任何事实。内部IntelliJ分析仪正确使用此注释。