您可以使用
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<Integer> getNumbers() { return null; } public static List<String> getStrings() { return null; }}输出包括:
getStringsReturn type: java.util.List<java.lang.String>Parameterized: interface java.util.List class java.lang.StringgetNumbersReturn type: java.util.List<java.lang.Integer>Parameterized: interface java.util.List class java.lang.Integer



