使用反射在泛型为Integer的ArrayList中添加String类型的数据
来源:互联网 发布:测声音频率软件 编辑:程序博客网 时间:2024/05/16 02:45
昨天刚刚回顾了一下曾经了解过但是还是不懂的反射,看到了一个有意思的代码,如何在泛型为Integer的ArrayList中添加一个String类型的数据呢?
private void addStringToIntList() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { ArrayList<Integer> list = new ArrayList<>(); //使用反射获取list的add方法 Method method = list.getClass().getMethod("add", Object.class); //将这个字符串添加进入list集合中 method.invoke(list, "Java反射机制实例。"); //打印出list中的数据,只有一条,因为我们只添加了一条 LogSystem.print(list.get(0)); }
运行结果是正常的,打印出了正常的数据,可是这是为什么呢?
搜索了一些资料:
因为泛型的作用层在编译时,而在运行时泛型会被擦除(这里我也不知道为什么),而反射在运行时获取到list的add方法,直接在运行时添加了数据,跳过了编译期。
0 0
- 使用反射在泛型为Integer的ArrayList中添加String类型的数据
- 在泛型为Integer的ArrayList中存放一个String类型的对象。
- 在泛型为Integer的ArrayList中存放一个String类型的对象
- ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
- ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为 Integer 的 ArrayList 中存放一个 String 类型的对象。
- 如何在ArrayList<Integer>中添加String类型数据
- java面试要点---ArrayList list = new ArrayList(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
- 黑马程序员 :(反射应用 )通过反射讲<Integer>类型的集合中添加一个<String>类型的数据
- 使用反射在 ArrayList<Integer> 集合中添加一个字符串数据;
- 通过反射绕过编译向泛型为String的ArrayList里面添加整型
- 反射示例2:在ArrayList<Integer>集合中添加一个字符串数据
- 【java】反射(二)——泛型集合(在ArrayList<Integer>中加入String对象)
- 如何让ArrayList<Integer>添加一个String类型的元素呢
- 给定一个 ArrayList<Integer>的一个对象,实现在这个集合中添加一个字符串
- 绕过泛型,通过反射把 String 添加到 List<Integer> 中
- 在实体类中将数据库中数据类型为CLOB的数据转化成String类型
- 数据基本类型和Integer、String之间的转换
- 在java中String,对象,Integer(包装类型的)关于引用传递还是值传递
- HUD2217
- python urllib2 urlopen 报BadStatusLine 报错
- Hadoop集群的HA简单说明
- 原生JS实现添加简单遮罩层
- linux 下 mount 挂载 无写文件权限问题解决
- 使用反射在泛型为Integer的ArrayList中添加String类型的数据
- Android 自定义ProgressBar显示百分比
- 基础练习 2n皇后问题
- PAT 1023. Have Fun with Numbers
- HTML框架之图表——Echarts
- Oracle 用shutdown+immediate关机后启动方法
- OpenGL鱼眼球面投影
- Java_HelloWorld
- 使用 Eclipse 调试 Java 程序的 10 个技巧