【问题标题】:test for subclass with getType in conditional in java在java中使用getType条件测试子类
【发布时间】:2011-06-11 21:57:27
【问题描述】:

我必须找出方法返回类型是否是某个基类的子类。到目前为止,我找不到内置的方法来做到这一点,我只能找到一种方法来测试精确的类匹配。我也可以使用注释来做到这一点,但我的想法是如果我碰巧添加了一个新的子类,我不想添加额外的代码。我想过针对所有可能的子类进行测试,或者创建一个无类型对象并使用“instanceof”测试它的实例,但似乎没有什么是理想的。理想情况下:

if (m.getReturnType() Extends Superclass.class)

但没有与实际实例的“instanceof”功能类似的“扩展”。有我不知道的条件运算符吗?提前感谢您的任何想法。

这实际上是针对一个android项目的,所以我可能无法实现所有的可能性。

【问题讨论】:

    标签: java android conditional


    【解决方案1】:

    我想你想使用Class.isAssignableFrom(Class)

    仅在普通 Java 中使用时,

       System.out.println(List.class.isAssignableFrom(LinkedList.class));
    

    打印出true。就像这样:

      System.out.println(Queue.class.isAssignableFrom(LinkedList.class));
    

    因为 LinkedList 可以同时被视为 List 和 Queue。然而,

       System.out.println(ArrayList.class.isAssignableFrom(LinkedList.class));
    

    打印 false,因为 LinkedList不能被视为 ArrayList。

    【讨论】:

    • 做到了。不知道我是怎么错过这个功能的:)
    • 最近才发现。不完全是一个明显的名字:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多