Integer和int Long和long比较大小 equals ==【采坑】

Integer和int Long和long比较大小 equals ==【采坑】,第1张

判断相等的时候,用 == ,如果两个都是包装类,还会惯性的用 equals ,但碰到一个包装类,一个基本类型的时候,就容易用 == ,这就开启了无尽的找bug之旅。

Long类equals方法的源码:

    public boolean equals(Object obj) {
        if (obj instanceof Long) {
            return value == ((Long)obj).longValue();
        }
        return false;
    }

因为基本类型通过Object一转,就成了包装类,然后再用longValue方法拿到基本类型的数字,接下来就是纯数字用 == 了。

如果外面传进来的是null,是不会通过instanceof的。

        Long l = null;
        System.out.println(l instanceof Long); //false

详情见

java 判断是不是基本类型_globalcoding的博客-CSDN博客_java判断基本类型

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/721534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存