是否有理由为其他类型的类型实现java.util.Comparable?
发布时间:2020-12-14 06:05:23 所属栏目:Java 来源:网络整理
导读:实现Comparable T的类通常为自己实现它,例如 class MyInteger implements ComparableMyInteger { ... }class MyString implements ComparableMyString { ... } 但是没有什么可以阻止你为不同的类型实现它: class MyString implements ComparableMyInteger {
实现Comparable< T>的类通常为自己实现它,例如
class MyInteger implements Comparable<MyInteger> { ... } class MyString implements Comparable<MyString> { ... } 但是没有什么可以阻止你为不同的类型实现它: class MyString implements Comparable<MyInteger> { ... } 这将允许您将MyString与MyInteger进行比较. 如in the Javadoc所述,Comparable旨在模拟自然排序,即total order,因此为了能够具有反对称性,compareTo的参数类型应该与定义该方法的类型相同. 但实现类是否有任何实际用途(滥用)SomeType实现Comparable< OtherType>? 更新:Joni和I提供的答案给出了可比较<超类型>的实际示例.隐式实现,即您的类传递实现该接口的位置.知道是否有人有明确使用它的例子会很有趣. 解决方法
如果有父/子关系,你会发现这一点.例如,Enum类实现Comparable< E> E是一个类型参数.所有枚举共享这个compareTo实现.
澄清:Enum< ConcreteClass>实现Comparable< ConcreteClass>.如果它遵循该模式,您希望它实现Comparable< Enum< ConcreteClass>> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |