CharSequence equals()不能很好地工作

时间:2016-09-16 23:10:00

标签: java string character

拥有此代码:

if (cs.equals(keywordUnderProcess)) {

} else {

}

cskeywordUnderProcess都是CharSequence,其值为star,但是其他情况会执行。为什么? equals检查值,不是吗?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:4)

如果您阅读CharSequence界面的javadoc页面,则表示equals的行为未定义:

  

此接口不会细化equals和hashCode方法的常规协定。因此,比较实现CharSequence的两个对象的结果通常是未定义的。每个对象可以由不同的类实现,并且不能保证每个类能够测试其实例与另一个的实例是否相等。因此,将任意CharSequence实例用作集合中的元素或映射中的键是不合适的。