有静态分析工具可以分析出因为拆箱导致的空指针 NPE 吗?

3 天前
 inza9hi

我一直以为静态分析已经很强大了, 尝试了下 IDEA 自带的工具和 PMD 竟然都分析不出来。

PS: A 是 Pb 生成的,B 是手写的,所以导致有用 int ,有用 integer

@Data
    static class A{
        private int a;
    }
    @Data
    static class B  {
        private Integer b;
    }

    public static void main(String[] args) {
        A a = new A();
        B b = new B();
       a.setA(b.getB());
    }
852 次点击
所在节点    Java
4 条回复
xuld
3 天前
这个需求静态分析肯定是做不到的,除非静态分析把所有 Integer 到 int 的转换都报错
phrack
3 天前
本来不想回复的,不过 1 楼一来就乱说,不得不说某个互联网法则确实有用。

这个肯定是能做的,很简单。
inza9hi
3 天前
@xuld 找到所有 Integer 转 int 的地方,判断这个值是否为 null
kaneg
3 天前
还是有很多地方只有在运行时才知道是否为 null ,比如从 map 或者数据库中取值。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1102386

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX