[javaEE] 反射-通过反射了解集合泛型本质
2023-02-18 15:47:26 时间
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(); } } }
相关文章
- 7个连环问揭开java多线程背后的弯弯绕
- 掌握Java的内存模型,你就是解决并发问题最靓的仔
- 基于ServiceStage的微服务开发与部署(二)
- es6扩展运算符、concat方法合并多个数组
- 【愚公系列】2022年12月 MAUI框架-在线课堂项目的环境配置
- springboot validated注解数据校验 异常处理
- 【经验分享】C51单片机中如何实现printf输出log?
- SpringBoot实战:整合MyBatis搭建基本骨架
- SpringBoot实战:整合MapStruct实现数据类型转化
- 归并排序应用——剑指 Offer 51. 数组中的逆序对
- 对象的表示方法
- ABAP 之 多个内表相互关联的几种方式
- 那些语音识别尴尬:投宿还是投诉?
- 领跑业界!腾讯云原生首发容器服务3大能力!
- 热点观察|游戏数字化,助推文旅产业新发展
- 全球首个基于区块链的数字文化遗产开放共享平台“数字敦煌开放素材库”正式上线
- “碰瓷”奥运冠军,退!退!退!
- 企业该如何使用.icu域名?
- 金融人快进来!域名+DNS备份迁移方案帮你满足最新监管要求!
- 腾讯云企业网盘:云办公更安全的文件管理神器,限时1元抢购!