[javaEE] 反射-通过反射了解集合泛型本质
2023-02-18 15:46:58 时间
java中的泛型是防止错误输入的,只在编译时刻起作用
package com.tsh.reflect; import java.lang.reflect.Method; import java.util.ArrayList; public class ReflectDemo { public static void main(String[] args) { ArrayList list=new ArrayList(); ArrayList<String> list2=new ArrayList<String>(); list.add("tsh"); list.add(2); list2.add("tsh"); //list2.add(2);//直接编译不通过,会报错 //泛型检测只是在编译时刻才会有,绕过编译时刻,就不存在泛型了 Class c2=list2.getClass(); try { Method m=c2.getMethod("add", Object.class); m.invoke(list2, 2);//绕过编译时刻,此时这个泛型检查不起作用,int型也能加进去了 System.out.println(list2.size());//2个元素 //此时不能使用for(String str:list2)这个遍历,会报类型转换异常 } catch (Exception e) { e.printStackTrace(); } } }
相关文章
- 手把手教你玩转 Excel 数据透视表
- 2022年学习机器人和人工智能的一些体会
- 【基于ChatGPT的API】实现一个响应速度比官方更快的在线问答网站并通过宝塔上线全网可访问
- 玩转 Spring Boot 集成篇(任务动态管理代码篇)
- IDEA 设置文件编码
- ABAP 之 commit 提交的使用解析
- 灵动岛前端Ui
- 涨姿势:10 大主宰世界的牛逼算法!
- RabbitMQ:基本消息模型
- RabbitMQ:消息分发模型
- 详解Lombok 的使用,工作原理,优缺点
- 超过最大重发次数后如何设置文件仍然发送失败的邮件告警?
- C语言 分支循环
- 【深度学习】对迁移学习中域适应的理解和3种技术的介绍
- 【上云迁移】腾讯云2023一键在线迁移方案实践
- PyTorch中的In-place操作是什么?为什么要避免使用这种操作?
- 【建议收藏】CV学习路径推荐
- 数据可视化软件有哪些?
- 关于机器学习模型的可解释性算法!
- Ctrl-VIO:基于连续时间的卷帘相机视觉惯性里程计方案