idea彩蛋

今天在review代码时,发现了一个很有趣的现象。
idea作为日常的开发工具,对于简单的代码已经能做到很好的智能提示了,比如英语单词错误、比如明显的NPE异常等。今天发现,同个逻辑,不同的写法,idea会有不同的反应。
先看下下图的代码:

写法一:采用Objects.isNull(s)判断是否为null
private static int validStrLength(String s) {
        if (Objects.isNull(s)) {
            System.out.println("s is null!");
        }
        if (s.length() > 10) {
            return 10;
        }
        return s.length();
    }

上述代码很明显会触发NPE异常。这个逻辑如果换一种写法,在idea中的显示形式就有很大不同了。写法二如下所示:

写法一:采用 "==" 判断是否为null
private static int validStrLength(String s) {
        if (s == null) {
            System.out.println("s is null!");
        }
        if (s.length() > 10) {
            return 10;
        }
        return s.length();
    }

查看 Objects.isNull(s) 的内部逻辑,我们可以发现,写法一和写法二其实是完全一样的。


Objects.isNull()内部实现

但写法一和写法二在idea中的表现形式是有较大差异的。


写法一
写法二

写法二有明显的错误提示!
就仅以这种场景来看,以后还是用”==“会更好点。这个算是idea的彩蛋吧😄😄

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。