Jon*_* S. 3 java conditional android
我必须找出方法返回类型是否是某个基类的子类.到目前为止,我找不到内置的方法来做到这一点,我只能找到一种方法来测试一个完全的类匹配.我也可以使用注释来做到这一点,但我的想法是,如果我碰巧添加一个新的子类,我不想添加额外的代码.我想过对所有可能的子类进行测试,或者创建一个无类型的对象并使用"instanceof"测试它的实例,但似乎没有什么是理想的.理想的情况是:
if (m.getReturnType() Extends Superclass.class)
Run Code Online (Sandbox Code Playgroud)
但是没有"扩展"功能类似于"instanceof"与实际实例.是否有一个我不知道的条件运算符?提前感谢您的任何想法.
这实际上是一个Android项目,所以我可能无法实现所有可能性.
我想你想用Class.isAssignableFrom(Class).
使用普通Java时,
System.out.println(List.class.isAssignableFrom(LinkedList.class));
Run Code Online (Sandbox Code Playgroud)
打印出来true.同样如下:
System.out.println(Queue.class.isAssignableFrom(LinkedList.class));
Run Code Online (Sandbox Code Playgroud)
因为LinkedList可以被视为List和Queue.然而,
System.out.println(ArrayList.class.isAssignableFrom(LinkedList.class));
Run Code Online (Sandbox Code Playgroud)
打印false,因为LinkedList 不能像ArrayList那样对待.