test02(){ System.out.println(); return null; } public static void main(String[] args) throws NoSuchMethodException { Method method = Test09.class.getMethod("test01", Map.class, List.class); Method method1= Test09.class.getMethod("test02"); Type[] genericParameterTypes = method.getGenericParameterTypes();//获得泛型的参数类型 for (Type genericParameterType : genericParameterTypes) { System.out.println("#"+genericParameterType); //判断泛型的参数类型是否等于结构的参数化类型 if (genericParameterType instanceof ParameterizedType) { //强转出参数化类型,获得真实的参数化"> test02(){ System.out.println(); return null; } public static void main(String[] args) throws NoSuchMethodException { Method method = Test09.class.getMethod("test01", Map.class, List.class); Method method1= Test09.class.getMethod("test02"); Type[] genericParameterTypes = method.getGenericParameterTypes();//获得泛型的参数类型 for (Type genericParameterType : genericParameterTypes) { System.out.println("#"+genericParameterType); //判断泛型的参数类型是否等于结构的参数化类型 if (genericParameterType instanceof ParameterizedType) { //强转出参数化类型,获得真实的参数化"> test02(){ System.out.println(); return null; } public static void main(String[] args) throws NoSuchMethodException { Method method = Test09.class.getMethod("test01", Map.class, List.class); Method method1= Test09.class.getMethod("test02"); Type[] genericParameterTypes = method.getGenericParameterTypes();//获得泛型的参数类型 for (Type genericParameterType : genericParameterTypes) { System.out.println("#"+genericParameterType); //判断泛型的参数类型是否等于结构的参数化类型 if (genericParameterType instanceof ParameterizedType) { //强转出参数化类型,获得真实的参数化">
package top.ltyzqhh.Reflection;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
//通过反射获取泛型
public class Test09 {
public void test01(Map<String,User> map, List<User> list) {
System.out.println("test01");
}
public Map<String,User> test02(){
System.out.println();
return null;
}
public static void main(String[] args) throws NoSuchMethodException {
Method method = Test09.class.getMethod("test01", Map.class, List.class);
Method method1= Test09.class.getMethod("test02");
Type[] genericParameterTypes = method.getGenericParameterTypes();//获得泛型的参数类型
for (Type genericParameterType : genericParameterTypes) {
System.out.println("#"+genericParameterType);
//判断泛型的参数类型是否等于结构的参数化类型
if (genericParameterType instanceof ParameterizedType)
{
//强转出参数化类型,获得真实的参数化信息
Type[] actualTypeArguments = ((ParameterizedType) genericParameterType).getActualTypeArguments();
for (Type actualTypeArgument : actualTypeArguments) {
System.out.println(actualTypeArgument);
}
}
}
method= Test09.class.getMethod("test02",null);
Type genericReturnType = method.getGenericReturnType();
if (genericReturnType instanceof ParameterizedType)
{
//强转出参数化类型,获得真实的参数化信息
Type[] actualTypeArguments = ((ParameterizedType) genericReturnType).getActualTypeArguments();
for (Type actualTypeArgument : actualTypeArguments) {
System.out.println(actualTypeArgument);
}
}
}
}
运行结果