本文接上文“java反射之方法反射的基本操作方法”,利用反射了解下java集合中泛型的本质

1、初始化两个集合,一个使用泛型,一个不使用
ArrayList list1 = new ArrayList(); ArrayList<String> list2 = new ArrayList<String>();
2、有定义类型可得在list2中添加int类型会报错
list2.add("Hello");
list2.add(20); //报错
3、获取两个对象的类类型进行比较
Class c1 = list1.getClass(); Class c2 = list2.getClass(); System.out.println(c1 == c2);
通过c1==c2结果返回true,说明编译之后集合的泛型是去泛型化的,java中集合的泛型是为了防止错误输入的,只在编译阶段有效,绕过编译就无效了
4、验证:通过方法的反射来绕过编译
try {
Method m = c2.getMethod("add", Object.class);
m.invoke(list2,20);
System.out.println(list2);
} catch (Exception e) {
e.printStackTrace();
}
5、输出结果
6、完整代码
package com.format.test;
import java.lang.reflect.Method;
import java.util.ArrayList;
/**
* Created by Format on 2017/6/4.
*/
public class Test2 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
ArrayList<String> list2 = new ArrayList<String>();
list2.add("Hello");
// list2.add(20); //报错
Class c1 = list1.getClass();
Class c2 = list2.getClass();
System.out.println(c1 == c2);
/**
* 反射操作都是编译之后的操作
* c1==c2结果返回true,说明编译之后集合的泛型是去泛型化的
* java中集合的泛型是为了防止错误输入的,只在编译阶段有效,绕过编译就无效了
* 验证:通过方法的反射来绕过编译
*/
try {
Method m = c2.getMethod("add", Object.class);
m.invoke(list2,20);
System.out.println(list2);
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上这篇java反射之通过反射了解集合泛型的本质(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# java
# 泛型
# 反射
# 深入分析JAVA 反射和泛型
# Java使用反射来获取泛型信息示例
# Java 基础详解(泛型、集合、IO、反射)
# Java 中利用泛型和反射机制抽象DAO的实例
# java基础之反射和泛型以及注解
# 应用Java泛型和反射导出CSV文件的方法
# Java反射
# 泛型在Json中的运用
# 报错
# 给大家
# 只在
# 射来
# 都是
# 是为了
# 希望能
# 这篇
# 可得
# 小编
# 大家多多
# 操作方法
# 解下
# 射了
# args
# int
# main
# String
# gt
# getClass
相关文章:
长沙做网站要多少钱,长沙国安网络怎么样?
浅析上传头像示例及其注意事项
重庆市网站制作公司,重庆招聘网站哪个好?
宝塔面板创建网站无法访问?如何快速排查修复?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
,怎么用自己头像做动态表情包?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
设计网站制作公司有哪些,制作网页教程?
网站按钮制作软件,如何实现网页中按钮的自动点击?
如何快速生成ASP一键建站模板并优化安全性?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何快速查询网址的建站时间与历史轨迹?
高端建站如何打造兼具美学与转化的品牌官网?
深圳网站制作案例,网页的相关名词有哪些?
简单实现Android验证码
如何用免费手机建站系统零基础打造专业网站?
高防服务器租用指南:配置选择与快速部署攻略
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
网站制作模板下载什么软件,ppt模板免费下载网站?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何自定义建站之星网站的导航菜单样式?
建站之星3.0如何解决常见操作问题?
如何制作网站标识牌,动态网站如何制作(教程)?
个人摄影网站制作流程,摄影爱好者都去什么网站?
建站10G流量真的够用吗?如何应对访问高峰?
Swift开发中switch语句值绑定模式
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
建站主机是什么?如何选择适合的建站主机?
如何选择靠谱的建站公司加盟品牌?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
建站之星伪静态规则如何设置?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
c# 在高并发场景下,委托和接口调用的性能对比
如何高效利用亚马逊云主机搭建企业网站?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何登录建站主机?访问步骤全解析
建站主机CVM配置优化、SEO策略与性能提升指南
焦点电影公司作品,电影焦点结局是什么?
制作公司内部网站有哪些,内网如何建网站?
为什么Go需要go mod文件_Go go mod文件作用说明
已有域名和空间如何搭建网站?
非常酷的网站设计制作软件,酷培ai教育官方网站?
建站之星官网登录失败?如何快速解决?
Android滚轮选择时间控件使用详解
广德云建站网站建设方案与建站流程优化指南
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
*请认真填写需求信息,我们会在24小时内与您取得联系。