为什么java中的equals方法可以访问其他对象的私有域
3 回答
四无小青年
TA贡献88条经验 获得超43个赞
不知道你所说的equals()访问私有域是在哪看到的,在java中如果是普通对象,那它的equals()只是单纯的使用==来比较的。
//这是jdk1.7中的源码 public boolean equals(Object obj) { return (this == obj); }
而字符串的equals()也没有你所说的访问私有域
//这是jdk1.7中的源码 public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
望采纳
纷飞无悔3342058
TA贡献4条经验 获得超0个赞
equals比较的是字符的hashcode()值,平常我们比较相同的时候一般都是重写equals方法的。我不清楚你说的私有域是什么意思,大概是private所修饰的吧,想访问可以通过反射来访问,反射很强大的!
添加回答
举报
0/150
提交
取消