java反射之通过反射了解集合泛型的本质(详解)
发布时间 - 2026-01-11 01:43:15 点击率:次本文接上文“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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Laravel怎么实现验证码(Captcha)功能
Python函数文档自动校验_规范解析【教程】
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
三星、SK海力士获美批准:可向中国出口芯片制造设备
高性能网站服务器部署指南:稳定运行与安全配置优化方案
详解jQuery中基本的动画方法
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
昵图网官方站入口 昵图网素材图库官网入口
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
网站建设要注意的标准 促进网站用户好感度!
如何在建站之星绑定自定义域名?
大连 网站制作,大连天途有线官网?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何集成Inertia.js与Vue/React?(安装配置)
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
JS实现鼠标移上去显示图片或微信二维码
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
如何快速搭建自助建站会员专属系统?
如何利用DOS批处理实现定时关机操作详解
Laravel如何使用Vite进行前端资源打包?(配置示例)
html如何与html链接_实现多个HTML页面互相链接【互相】
Bootstrap整体框架之JavaScript插件架构
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
JS碰撞运动实现方法详解
如何在企业微信快速生成手机电脑官网?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
Laravel如何处理和验证JSON类型的数据库字段
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
Laravel中的Facade(门面)到底是什么原理
如何基于云服务器快速搭建网站及云盘系统?
linux写shell需要注意的问题(必看)
如何生成腾讯云建站专用兑换码?
详解Android——蓝牙技术 带你实现终端间数据传输
如何在阿里云通过域名搭建网站?
高端云建站费用究竟需要多少预算?
如何快速生成橙子建站落地页链接?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
,怎么在广州志愿者网站注册?

