我想在我的应用程序中使用FindBugs来检测空指针失败,我关心的是代码
public class Test
{
public static void main(String[] args)
{
String nullStr = null;
Person p = new Person();
String mightBeNull = p.getAddress().getStreet();
getString(mightBeNull);
getString2(nullStr);
}
@NonNull
static String getString(String street) {
return street;
}
@NonNull
static String getString2(String nullString) {
return nullString;
}
}
由于未启动person内的Address结构,此代码肯定会导致空指针异常,但具有@NonNull
注释的FindBugs将仅检测getString2(nullStr)
的第二种情况。如果它不支持这种情况,你可以参考我在编译阶段可以检测到这种情况的其他工具吗?
答案 0 :(得分:3)
试试这个:
static String getString(@NonNull String street) {
return street;
}
因为将@NonNull
设置为方法的返回类型意味着结果永远不会是null
。如果将@NonNull
设置为方法的参数,则说:参数不能是null
。