首页 > 代码库 > Java中的equals比较,小坑一个
Java中的equals比较,小坑一个
最近工作中,经常需要比较2个对象的值。有个问题经常遇到,就是下面的2种情况。
public static void main(String[] args) {
Integer a =11;
Object b=a;
System.out.println(b.equals("11"));//false
String c ="11";
Object d = c;
System.out.println(d.equals("11"));//true
}
查看JDK中文文档:
Integer的equals
比较此对象与指定对象。当且仅当参数不为 null
,并且是一个与该对象包含相同 int
值的 Integer
对象时,结果为 true
。
String的equals
比较此对象与指定对象。当且仅当参数不为 null
,并且是一个与该对象包含相同 string 值的 String对象时,结果为 true
。
String和Integer都重载了Object的equals方法,要求,两个对象比较首先必须是同一个类型的。
这个类型应该是指“实际类型”,Object d的实际类型是“String”,所以调用String的equals方法。
多态~
原文首发:http://fansunion.cn/article/detail/536.html
Java中的equals比较,小坑一个
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。