小编典典
您可以使用getGenericReturnTypewhich返回a Type而不是a Class,并允许您获取所有类型参数等。简短而完整的示例:
import java.lang.reflect.*;
import java.util.*;
public class Test {
public static void main(String [] args) {
for (Method method : Test.class.getMethods()) {
System.out.println(method.getName());
Type type = method.getGenericReturnType();
System.out.println("Return type: " + type.getTypeName());
if (type instanceof ParameterizedType)
{
ParameterizedType pt = (ParameterizedType) type;
System.out.println("Parameterized: " + pt.getRawType());
for (Type arg : pt.getActualTypeArguments())
{
System.out.println(" " + arg);
}
}
}
}
public static List getNumbers() {
return null;
}
public static List getStrings() {
return null;
}
}
输出包括:
getStrings
Return type: java.util.List
Parameterized: interface java.util.List
class java.lang.String
getNumbers
Return type: java.util.List
Parameterized: interface java.util.List
class java.lang.Integer
2020-11-26