正在回答 回答被采纳积分+1
3回答
易萧
2020-08-01 13:21:26
如果你打开Character的equals重写方法就会看到:
public boolean equals( Object obj ){ if( obj instanceof Character ){ return value == ( (Character)obj ).charValue(); } return false; }
可以看到,如果obj不是Character的实例,或者不是它的子类的实例(但我们知道,Character是没有子类的),它会直接返回false。
很明显,a是Integer类型,它不是Character的实例,所以不会比较它们的值是否相等,直接就false了。
所以总结如下:
① 如果a和b都是Character,它们的值相同,但不在-128~127范围内,那么使用==号进行判定时,返回false,这是因为a和b是两个不同的对象。
② 如果a是Character,b是其它类型,即便值相同,在equals()方法中也会直接被判定会false。
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星