如何通过反射获取泛型的具体类型
2016-09-21 10:13
253 查看
public class User { public List<User> list= new ArrayList<User>(); public String s = "user"; /** * 此方法获取泛型字段的具体泛型类型 * 想获取方法的泛型参数类型,可以通过Method的getGenericParameterTypes或者获取返回值的泛型具体类型getGenericRuturnType * 想获取父类的泛型类型用Class的getGenericSuperClass * ..... * * 注意:Type为Class的父类接口 */ @Test public void testGeneric() throws Exception{ Field field = User.class.getField("list"); //获取泛型类型(也可以获取到普通类型) Type type = field.getGenericType(); //java.util.List<com.reflect.User> /*//获取普通类型 Type type2 = field.getType(); //interface java.util.List*/ //判断是否为type是否为参数化类型,不然强转就会报错 if(type instanceof ParameterizedType){ ParameterizedType pt = (ParameterizedType)type; Class userClazz = (Class) pt.getActualTypeArguments()[0]; //class com.reflect.User System.out.println(userClazz.getField("s").get(userClazz.newInstance())); //user } } }
相关文章推荐
- 泛型约束通过反射获取相关值、属性名、属性类型
- 黑马程序员-通过反射获取泛型参数类型
- java 通过反射获取泛型的类型
- java 通过反射获取泛型的类型
- 通过反射获取泛型的实际类型
- java 通过反射获取泛型的类型
- 通过java反射技术获取泛型的真实类型并对其实例化
- java基础-反射 --通过反射 获取泛型实际类型参数
- 黑马程序员-----通过反射获取泛型类型
- java 通过反射获取泛型的类型
- java 通过反射获取泛型的类型
- java 通过反射获取泛型的类型
- 黑马程序员:泛型的高级介绍及通过反射获取实际类型参数
- 黑马程序员——通过反射获取方法中泛型参数的指定类型
- java 通过反射获取泛型的类型
- 如何获取java中泛型参数的实际类型--反射获取
- java 通过反射获取泛型的类型
- 通过反射获取泛型的参数类型信息
- java 通过反射获取泛型的类型
- 通过反射获取泛型真实类型