V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
inza9hi
V2EX  ›  Java

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

  •  
  •   inza9hi · 2 天前 · 771 次点击

    我一直以为静态分析已经很强大了, 尝试了下 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());
        }
    
    4 条回复    2025-01-03 23:17:15 +08:00
    xuld
        1
    xuld  
       2 天前
    这个需求静态分析肯定是做不到的,除非静态分析把所有 Integer 到 int 的转换都报错
    phrack
        2
    phrack  
       2 天前
    本来不想回复的,不过 1 楼一来就乱说,不得不说某个互联网法则确实有用。

    这个肯定是能做的,很简单。
    inza9hi
        3
    inza9hi  
    OP
       1 天前
    @xuld 找到所有 Integer 转 int 的地方,判断这个值是否为 null
    kaneg
        4
    kaneg  
       1 天前
    还是有很多地方只有在运行时才知道是否为 null ,比如从 map 或者数据库中取值。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3087 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:29 · PVG 21:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.