利用反射越过泛型检查
2016-08-11 14:20
232 查看
1.问题描述
现在有一个List<Integer> list = new ArrayList<Integer>();如何在list中添加String数据???
2.问题解决:
利用反射越过泛型检查,我们知道泛型其实就是在编译的时候检查,其实在class文件中,并没有泛型的存在,所以我们可以利用泛型来跳过编译的检查
3.代码:
java代码:
[I'm String]
现在有一个List<Integer> list = new ArrayList<Integer>();如何在list中添加String数据???
2.问题解决:
利用反射越过泛型检查,我们知道泛型其实就是在编译的时候检查,其实在class文件中,并没有泛型的存在,所以我们可以利用泛型来跳过编译的检查
3.代码:
java代码:
import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; public class GenericDemo { public static void main(String[] args) throws Exception { //利用反射越过泛型检查,因为在。clas文件中泛型根本就不存在,默认Object //所以得到.class文件就可以越过泛型 List<Integer> list = new ArrayList<Integer>(); //得到ArrayList的配置文件 Class clazz = Class.forName("java.util.ArrayList"); //得到ArrayList的add()方法 Method method = clazz.getMethod("add",Object.class); //调用方法 method.invoke(list, "I'm String"); //打印结果 System.out.println(list); } }结果:
[I'm String]
相关文章推荐
- 利用反射越过集合的泛型检查
- 利用反射调用方法,以及绕过泛型检查
- 反射_通过反射越过泛型检查
- 通过反射越过泛型检查
- 通过反射越过泛型检查
- 反射越过泛型检查
- java 反射之越过泛型检查
- 反射-通过反射越过泛型检查
- Java中通过反射越过泛型检查
- 利用泛型、自定义注解和反射实现PO与VO的快捷转换
- 利用反射和泛型让JDBC编程方便点
- 三层架构之数据访问层,利用反射返回IList泛型集合
- .NET基础篇——利用泛型与反射更新实体(ADO.NET Entity Framework)
- Unity C# 使用反射,利用字符串作为泛型参数调用泛型方法。
- 利用反射,泛型,静态方法快速获取表单值到Model。(转)
- 使用反射检查和实例化泛型类型
- 利用泛型和反射编写通用基础类型转换方法
- 利用泛型和反射机制抽象DAO
- 黑马程序员--Java基础加强--15.利用反射操作泛型IV【通过反射Method解析泛型方法思路】【通过Method对四种Type子接口类型进行解剖】【使用递归对任意复合泛型类型进行彻底解剖】【个人
- 利用反射操作泛型