java 泛型使用和反射
2016-12-27 10:32
423 查看
Object是基类,所有类的祖宗;
Type是类型,如基本数据类型;
Class是对象,每个类的对象的共性做的抽象。
Type的值可以为:java.util.List<java.util.List<com.flyread.optwebcontainer.biz.httpRequest.HttpClientUtil>>
然后我们可以用......Class也是有getSimpleName()等方法的。
创建Class对象,Class<T> clazz = Object.class = obj.getClass();
Class实例化后就是对象,如类A,A.class就是class对象。
反射详情:http://www.cnblogs.com/lzq198754/p/5780331.html
泛型例子:
利用泛型建泛型数组:
获得list、map、数组中的泛型对象:
fieldName为对应list或map的实体对象名称,fieldTypeName得到的结果是:java.util.List<java.lang.String>字符串,java.util.Map<java.lang.String, java.lang.String>,java.util.String[]字符串。然后去处理这些字符串吧,用Class.forName(");又将字符串变成对象。
Type是类型,如基本数据类型;
Class是对象,每个类的对象的共性做的抽象。
Type的值可以为:java.util.List<java.util.List<com.flyread.optwebcontainer.biz.httpRequest.HttpClientUtil>>
然后我们可以用......Class也是有getSimpleName()等方法的。
Class<?> keySonClazz = Class.forName(Type.getTypeName());
创建Class对象,Class<T> clazz = Object.class = obj.getClass();
T t = clazz.newInstance();
Class实例化后就是对象,如类A,A.class就是class对象。
反射详情:http://www.cnblogs.com/lzq198754/p/5780331.html
泛型例子:
利用泛型建泛型数组:
/** * 根据数组的最小一层非数组对象和数组的维度,生成多维度数组类型 * * @param clazz 数组的最小一层非数组类型 * @param dimensions 数组的维度 * @param <T> * @return */ protected <T> Class<?> genDimensionsArrayClass(Class<T> clazz, int dimensions) { if (dimensions == 1) { return Array.newInstance(clazz, 10).getClass(); } else if (dimensions > 1) { return Array.newInstance(genDimensionsArrayClass(clazz, dimensions - 1), 10).getClass(); } else { System.err.println("数组维度异常,异常维度为:" + dimensions); throw new TestngCSVException(TestngCSVException.OBJECT_TRANS, "数组维度异常,异常维度为:" + dimensions); } }
获得list、map、数组中的泛型对象:
Field field = t.getClass().getDeclaredField(fieldName); String fieldTypeName = field.getGenericType().getTypeName();
fieldName为对应list或map的实体对象名称,fieldTypeName得到的结果是:java.util.List<java.lang.String>字符串,java.util.Map<java.lang.String, java.lang.String>,java.util.String[]字符串。然后去处理这些字符串吧,用Class.forName(");又将字符串变成对象。
相关文章推荐
- Java使用反射来获取泛型信息
- Java学习笔记之使用反射+泛型构建通用DAO
- Java使用反射来获取Map的泛型信息
- javawebday65(泛型、通配符、注解、反射 注解使用)
- 【Java学习】使用泛型和反射 创建通用的数据库查询方法
- Java使用反射来获取泛型信息
- Java使用反射来获取成员变量泛型信息
- Java使用反射来获取成员变量泛型信息
- Java使用反射技术越过泛型检测
- 安卓Android单表通用数据库、万能数据库的设计,(sqlite,java反射,泛型),使用非常方便
- java中使用反射往一个泛型是Integer类型的ArrayList中添加字符串,反射的案例1.
- Java-泛型(Generic)深入使用(与反射结合使用)
- 黑马程序员--Java基础加强--15.利用反射操作泛型IV【通过反射Method解析泛型方法思路】【通过Method对四种Type子接口类型进行解剖】【使用递归对任意复合泛型类型进行彻底解剖】【个人
- 01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型
- Java 理论与实践:使用通配符简化泛型使用
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 通过反射动态使用Java类(转)