java的“可比性”比表面上的精确多少?
Comparable
接口看起来像
interface Comparable<T>
{
public int compareTo(T other);
...
}
这并没有从本质上说明Comparable<T>
的实现与类型T
之间的关系。Java规范的文本似乎建议Comparable<T>
的实现应该始终是T
的子类,但据我所知,它没有明确说明这一点。应该是吗?此外,如果{
你可以在下面搜索框中键入要查询的问题!
Comparable
接口看起来像
interface Comparable<T>
{
public int compareTo(T other);
...
}
这并没有从本质上说明Comparable<T>
的实现与类型T
之间的关系。Java规范的文本似乎建议Comparable<T>
的实现应该始终是T
的子类,但据我所知,它没有明确说明这一点。应该是吗?此外,如果{
# 1 楼答案
这个接口早在泛型被引入之前就存在了,最初看起来像
public int compareTo(Object other);
这仍然是编译成字节码后的样子。随着泛型的增加,这个接口被修改以提供一些基本的类型安全性
如果我没弄错你的问题,你是在问“是什么阻止了我这么做?”
class SomeClass implements Comparable<SomeUnrelatedClass>
没什么。当
compareTo
方法处理对象时,您必须考虑compareTo
对哪些类型有用,而更新后的接口仍然如此