java - 测试两个 Java 对象是否可以相互比较

标签 java generics polymorphism comparable

我在 Java 中有两个值,它们可以是任何类型(基元除外),因此它们都是 Object 类型。我想看看其中一个是否实现了 Comparable,如果是,则调用 compareTo() 方法来比较它们。

但是,因为 Comparable 是一个通用接口(interface),所以两个对象可以实现,例如 Comparable 和 Comparable,并且不能相互比较。

有什么方法可以判断两个Object是否可以相互比较?

考虑到这一点后,我意识到可能有更好的方法来执行此操作,即使用 Object 以外的某种类型,但此时,我只是对我提出的问题感到好奇。

最佳答案

通过反射,您可以找到 Comparable 接口(interface)的通用类型。

其他懒惰的选择是调用它并捕获 ClassCastException :)

关于java - 测试两个 Java 对象是否可以相互比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42056679/

相关文章:

java - 如何在Spring中将多个 map 合并为一个

java - 为什么我无法将 SuperType 添加到 <T extends SuperType> 的 List<T> 中?

c# - 试图避免使用我的泛型进行强制转换

c# - 通过反射调用带有参数的泛型方法时,无法将 System.Int32 类型的对象转换为 System.Object[]

c++ - 使用不同的实现文件来实现多态是不是可以?

java - 实例方法是否曾经使用静态绑定(bind)解析?

java - 将数字转换为排名 - Java

java - Exact Online 上的 token 请求未返回访问 token

具有双重分派(dispatch)的 C++ 多态循环依赖

java - Maven 构建失败,错误代码为 'ReasonPhrase:HTTPS Required'