您需要此方法:
boolean isList = List.class.isAssignableFrom(myClass);
一般而言,(上文)应替换为,并应替换为List
superclass
myClass
subclass
来自 JavaDoc:
确定此对象所表示的类或接口是否与指定参数所表示的类或接口相同,或者是否是其超类或超接口。如果是这样,它将返回;否则,它将返回 。如果此对象表示基元类型,则如果指定的参数正是此对象,则此方法返回;否则,它将返回 。Class
Class
true
false
Class
true
Class
Class
false
参考:
相关:
a) 检查对象是否是您在编译时知道的类或接口(包括子类)的实例:
boolean isInstance = someObject instanceof SomeTypeOrInterface;
例:
assertTrue(Arrays.asList("a", "b", "c") instanceof List<?>);
b) 检查对象是否是您仅在运行时知道的类或接口(包括子类)的实例:
Class<?> typeOrInterface = // acquire class somehow
boolean isInstance = typeOrInterface.isInstance(someObject);
例:
public boolean checkForType(Object candidate, Class<?> type){
return type.isInstance(candidate);
}