黑马程序员-通过反射获取泛型参数类型
2012-08-02 17:59
309 查看
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
package com.itcast.test2; import java.util.*; import java.lang.reflect.*; public class GenericTest { /** * HashMap<String,Integer> hashMap = new HashMap<String,Integer>(); * 这个里面我们是无法通过变量hashMap而得到HashMap中参数的类型, * 因为HashMap<String,Integer>在编译后字节码中去掉了类型 * 也就是说HashMap<String,Integer>和和HashMap<K,V>的字节码是一样的, * 所以不能取得HashMap<String,Integer>中的参数类型,那我们可以通过把hashMap作为 * 一个参数传入一个方法中来获得HashMap<String,Integer>中的参数类型, * 因为通过反射获得的Method中有能够获得参数化的类型的方法 */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Method useParameterMethod = Class.forName("com.itcast.test2.GenericTest").getMethod("useParameter",HashMap.class); Type[] gType = useParameterMethod.getGenericParameterTypes(); // 取得属性的泛型类型 ParameterizedType pType = (ParameterizedType)gType[0]; System.out.println(pType.getRawType()); // 获取原始类型 Type[] tArgs = pType.getActualTypeArguments(); // 获取参数类型 for(Type t : tArgs) { System.out.println(t); } } // 此方法作用就是在主方法中通过反射调用该方法获取参数类型 public static void useParameter(HashMap<String,Integer> hashMap) {} }
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
相关文章推荐
- 黑马程序员——通过反射获取方法中泛型参数的指定类型
- 黑马程序员:泛型的高级介绍及通过反射获取实际类型参数
- 通过反射获取泛型参数数组(Class对象 List类型)
- 通过反射获取泛型参数类型
- 通过反射获取泛型的参数类型信息
- java中通过反射获取泛型的参数类型
- java再复习——通过反射获取到方法的参数和返回值的泛型类型
- java基础-反射 --通过反射 获取泛型实际类型参数
- 黑马程序员-----通过反射获取泛型类型
- java 通过反射获取泛型的类型
- 黑马程序员--Java基础加强--17.利用反射操作泛型VI【泛型类型变量的语义】【GenericDeclaration接口】【泛型接口TypeVariable】【通过Class反射解析泛型类】
- 通过反射得到泛型的类型参数
- Gson通过借助TypeToken获取泛型参数的类型的方法(转)
- java 通过反射获取泛型的类型
- 如何通过反射获取泛型的具体类型
- 通过反射获取父类泛型类型
- java反射获得泛型参数getGenericSuperclass():获取到父类泛型的类型
- Gson通过借助TypeToken获取泛型参数的类型的方法
- java 通过反射获取泛型的类型
- Java反射通过class获取父类泛型类型