为了账号安全,请及时绑定邮箱和手机立即绑定

java Integer 与int 如何比较内容值是否相等?

java Integer 与int 如何比较内容值是否相等?

扬帆大鱼 2019-01-18 03:45:46
之前是我没问清楚,我的纠结点在与两个Integer对象如何判断相等比较方便,因为前者需要判断null, Integer a = null; Integer b = new Integer(128); System.out.print(Objects.equals(a,b));//所以用这个方法来判断相等,就不用判断null了
查看完整描述

4 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

题主第一句得出的结论是错误的:
"一般的当Integer的内容值超过-128~127的时候,如果与int使用==就会返回false。"

尝试了一下 int = 128 或者 int = 127,使用==同样返回true。

    public static void main(String[] args) {
        int a = 127;
        Integer i = new Integer(127);

        System.out.println(a == i);

        int b = 128;
        i = new Integer(128);

        System.out.println(b == i);
    }

第二个 Integer对象是否为空的问题,参考Integer.equals的实现 先判空,在执行判断条件。

查看完整回答
1 反对 回复 2019-02-12
?
波斯汪

TA贡献1811条经验 获得超4个赞

Integer对象和int使用==进行比较是会使用Integer.intValue进行拆箱,比较的就是int值,返回的是true

查看完整回答
反对 回复 2019-02-12
?
浮云间

TA贡献1829条经验 获得超4个赞

equals(Object)方法啊,专门用来比较对象的。

assert new Integer(500).equals(500)
查看完整回答
反对 回复 2019-02-12
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

int a=128;
Integer b=xx;

比较: if(Integer.valueOf(a).equals(b)) ,这样比较可以规避null问题

查看完整回答
反对 回复 2019-02-12
  • 4 回答
  • 0 关注
  • 5169 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号