静态分析捕获可能从方法调用返回的空指针

时间:2018-05-21 09:02:57

标签: java static-analysis findbugs spotbugs

使用静态分析可以提醒以下代码吗?

public class IntegerConversion {
    static int value; // Notice this is an int and not Integer
    public static Integer strToInt(String s) {
        Integer k;
        try {
            k= Integer.parseInt(s);
        } catch (NumberFormatException e) {
            k = null;
        }
        return k;
    }

    public static void main(String[] args) {
        // possible null pointer here as strToInt can return null
        value = strToInt("abc"); 
    }
}

我正在使用spotbugs(findbugs后继者),并且如果分配是在如下所示的相同方法中完成的话,它会正确地警告代码。

public class IntegerConversion {
    static int value;
    public static void strToInt(String s) {
        Integer k;
        try {
            k= Integer.parseInt(s);
        } catch (NumberFormatException e) {
            k = null;
        }
        value = k; // spot bugs alert on this line
    }

    public static void main(String[] args) {
        strToInt("abc");
    }
}

第一个代码段上缺少的警报是设计选择还是技术限制?是否有其他可以捕获此错误的静态分析工具?

0 个答案:

没有答案