String 类型的可以用equals判断,那Integer类型的用equals怎么不好用呀?
答案:4 悬赏:0 手机版
解决时间 2021-11-18 17:19
- 提问者网友:太高姿态
- 2021-11-18 04:25
String 类型的可以用equals判断,那Integer类型的用equals怎么不好用呀?
最佳答案
- 五星知识达人网友:鸽屿
- 2021-11-18 04:35
Integer类型的要转换为int去判断,就好用了。
Integer a=new Integer(3);
Integer b=new Integer(3);
int a1=a.intValue();
int b1=b.intValue();
blean bb=a1==b1;//这里就输出true了。
因为Integer是对象类型,你用equals比较是两个引用是否指向同一个对象,很多时候不是指向同一个对象,所以,你用equals得出的结果就是false,比如上面的a和b用a.equals(b),结果是false,当然对于Integer类型还有其它特殊规定,但是明白到这里就足够用了。
Integer a=new Integer(3);
Integer b=new Integer(3);
int a1=a.intValue();
int b1=b.intValue();
blean bb=a1==b1;//这里就输出true了。
因为Integer是对象类型,你用equals比较是两个引用是否指向同一个对象,很多时候不是指向同一个对象,所以,你用equals得出的结果就是false,比如上面的a和b用a.equals(b),结果是false,当然对于Integer类型还有其它特殊规定,但是明白到这里就足够用了。
全部回答
- 1楼网友:往事隔山水
- 2021-11-18 07:27
用==比较两个Integer对象,无语法错误,但本人估计并不是比较对象的值,而是个指针(内存中的存储地址),所以用equals()能是较两对象的值,谁说不能用呢?
Integer a=new Integer(3);
Integer b=new Integer(3);
System.out.println(a==b); //为fase
System.out.println(a.equals(b));//为true
fuck~~
没想到楼上比我先,这可是俺自己想出来的,不要以为抄袭!~数字也一样,晕~
Integer a=new Integer(3);
Integer b=new Integer(3);
System.out.println(a==b); //为fase
System.out.println(a.equals(b));//为true
fuck~~
没想到楼上比我先,这可是俺自己想出来的,不要以为抄袭!~数字也一样,晕~
- 2楼网友:何以畏孤独
- 2021-11-18 06:03
Integer a=new Integer("9");
Integer b=new Integer("10");
真确:a.equals(b);
错误 a.equals(10);
Integer b=new Integer("10");
真确:a.equals(b);
错误 a.equals(10);
- 3楼网友:罪歌
- 2021-11-18 05:15
当然啊用==
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯