美文网首页
idea彩蛋

idea彩蛋

作者: 行走的鸡汤哥 | 来源:发表于2019-05-09 22:34 被阅读0次

    今天在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的彩蛋吧😄😄

    相关文章

      网友评论

          本文标题:idea彩蛋

          本文链接:https://www.haomeiwen.com/subject/vnknoqtx.html