Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CharSequence equals()无法正常工作_Java_String_Character - Fatal编程技术网

Java CharSequence equals()无法正常工作

Java CharSequence equals()无法正常工作,java,string,character,Java,String,Character,有以下代码: if (cs.equals(keywordUnderProcess)) { } else { } cs和keywordundprocess都是CharSequence,值都是star,但将执行else情况。为什么?equals检查值,不是吗 如果您阅读接口的javadoc页面,它会说equals的行为未定义: 此接口不完善equals和hashCode方法的一般约定。因此,比较实现CharSequence的两个对象的结果通常是未定义的。每个对象可以由不同的类实现,并且不能保

有以下代码:

if (cs.equals(keywordUnderProcess)) {

} else {

}
cs
keywordundprocess
都是
CharSequence
,值都是
star
,但将执行else情况。为什么?
equals
检查值,不是吗


如果您阅读接口的javadoc页面,它会说
equals
的行为未定义:

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


不要因为抽象方法的实现不好而责怪接口(除非它有一个您责怪的默认方法)。一般来说,不要责怪标准API。如果它“不能很好地工作”,问题通常在于它的使用,而不是API本身。我不知道你是如何得到我责备接口的印象的。我只是在陈述一个开发人员从文档中注意到的事实。无论如何,您知道一个比较
CharSequence
s的简单方法吗?或者转换为
字符串
,并使用
字符串
相等
?是的,这是解决方法。给他们每个人打电话。