我正在阅读这本书的第二版,第36页。我不理解对于对称问题的解决方案:
@override public boolean equals(Object o) {
return o instanceof CaseInsensitiveString &&
((CaseInsensitiveString) o).s.equalsIgnoreCase(s);
}
如果我有
CaseInsensitiveString cis= new CaseInsensitiveString("hello")
和 String s="hello"
,它们的行为方式是不对称的。因为s.equals(cis)
返回 true,但 cis.equals(s)
返回 false...我错过了什么?
s.equals(cis)
吗? - chrylis -cautiouslyoptimistic-CaseInsensitiveString
中如何重写equals()
方法。这可能与那个有关。 - Savv