微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有理由为其他类型的类型实现java.util.Comparable?

实现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>?

更新:JoniI提供的答案给出了可比较<超类型>的实际示例.隐式实现,即您的类传递实现该接口的位置.知道是否有人有明确使用它的例子会很有趣.

解决方法

如果有父/子关系,你会发现这一点.例如,Enum类实现Comparable< E> E是一个类型参数.所有枚举共享这个compareto实现.

澄清:Enum< ConcreteClass>实现Comparable< ConcreteClass>.如果它遵循该模式,您希望它实现Comparable< Enum< ConcreteClass>>

原文地址:https://www.jb51.cc/java/120320.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐