我需要将所有方法归类到可以返回List的类中,然后检查所有这些方法是哪种List类型。当我得到该类型时,我需要检查它是否是特定接口的实现。
我愿意:
Person person = new Person();
Class c = person.class;
for (Method m: c.getDeclaredMethods()) {
// this gets me all the getters
if (m.getParameterTypes().size() == 0) {
Class<?> returnType = m.getReturnType()
if (returnType.equals(java.util.List.class)) {
// Can get here
// But how to get the class that is used to parameterise the
// list.
}
}
}
如何获取用于参数化列表的类?
答案 0 :(得分:1)
使用m.getGenericReturnType()
代替m.getReturnType()
。
这会给您返回Type
。然后,您需要测试这是否是ParameterizedType
的实例:如果是,则使用getActualTypeArguments()
进行转换并提取类型参数。