我有方法获取如下所示的 bean 属性列表。如何检查方法返回类型是集合(如 List、Set...)。 isInstance(Collection.class) 不起作用。
public static List<String> getBeanProperties(String className, boolean withLists) {
ArrayList<String> a = new ArrayList();
try {
Class c = Class.forName(className);
Method methods[] = c.getMethods();
for (int i = 0; i < methods.length; i++) {
String m = methods[i].getName();
if(m.startsWith("get") && methods[i].getParameterTypes().length == 0) {
if((methods[i].getReturnType().isInstance(Collection.class)) && !withLists) {
// skip lists
} else {
String f = m.substring(3);
char ch = f.charAt(0);
char lower = Character.toLowerCase(ch);
f = lower + f.substring(1);
a.add(f);
}
}
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return a;
}
最佳答案
使用 Collection.class.isAssignableFrom(returnType)
。 Reference
关于java - 如何检查 java.lang.reflect.Method 返回类型是 Collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087113/