CharSequence
接口在Java 11中获得了一个新的静态方法: compare
。
此方法返回一个int
:
如果两个CharSequence相等,则值为0;否则为0。如果第一个CharSequence在字典上小于第二个,则为负整数;如果第一个CharSequence在字典上大于第二个,则为正整数。
这听起来像 compareTo
的 Comparable
。但是,Java团队显然选择不让CharSequence
扩展Comparable
。为什么不?逻辑逃避了我。
about关于CharSequence::compare
的什么问题不适合Comparable::compareTo
?
最佳答案
因为 Comparable<CharSequence>
实现了 String
和 CharSequence
,所以添加Comparable<String>
实际上并不可行。
有关讨论,请参阅OpenJDK开发人员之一关于此主题的this post。
该贴士的提示:格式为 CharSequence::compare
的方法引用将适合作为 Comparator
。