我在Java中有两个值,可以是任何类型(基元除外),因此它们都是Object类型。我想看看是否实现Comparable,如果是,请调用compareTo()方法来比较它们。
但是,因为Comparable是一个通用接口,所以两个对象可以实现,例如,Comparable和Comparable,并且不能相互比较。
有没有办法确定两个物体是否相互可比?
正如我已经想到的那样,我已经意识到可能有更好的方法来做这个涉及使用除Object之外的某些类型,但在这一点上,我只是对我提出的问题感到好奇。
答案 0 :(得分:4)
通过反射,您可以找到Comparable接口的泛型类型。
其他懒惰选项只是调用它并捕获ClassCastException:)
答案 1 :(得分:2)
你能做的是:
然后假设在两个对象之一上调用该方法实际上会产生合理的结果。
但老实说,我在这里的评论:这听起来像一个奇怪的想法;而感觉就像你应该更好地退后一步,寻找更好的方法来解决你的真正的问题。试图找到如何比较苹果和岩石的“通用”方法并不容易。