【问题标题】:How to check if the "?" of a Class<?> object instanceof SomeInterface如何检查“?”类<?> 对象实例的 SomeInterface
【发布时间】:2018-10-25 19:59:08
【问题描述】:

简单-看起来-问题,但我开始认为我试图以错误的方式实现某些目标。假设我有一个正确初始化的Method 对象。

我需要检查该方法是否会返回一个实现Comparable 接口的对象。

问题是method.getReturnType()返回一个Class&lt;?&gt;对象,我想检查一下这个“?”实际上是Comparable的一个实例,但我不会写? instanceof Comparable,有人会怎么做?

编辑:我知道我可以先做result = method.invoke(someObject),然后再做result instanceof Comparable,但我需要在我的更大对象的构造函数中做这些检查,不知道我是否清楚。

【问题讨论】:

  • 如果一个方法返回,例如一个String,那么Method.getReturnType返回的Class就是String.class。因此,您需要测试 String.class 在其祖先中是否具有 Comparable,即 Comparable.class 是否可以从 String.class 分配(提示提示)。

标签: java generics reflection instanceof


【解决方案1】:
Comparable.class.isAssignableFrom(method.getReturnType())

【讨论】:

    猜你喜欢
    • 2021-03-27
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 2016-12-02
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多