Java笔记——泛型擦除
1. 泛型擦除
package cn.Douzi.T_Demo;import java.util.ArrayList;/*** @Auther: Douzi* @Date: 2019/3/8* @Description: cn.Douzi.T_Demo* @version: 1.0*/ public class ToolTest {public static void main(String[] args) {ArrayList<String> a1=new ArrayList<String>();a1.add("abc");ArrayList<Integer> a2=new ArrayList<Integer>();a2.add(123);System.out.println(a1.getClass() == a2.getClass());}}
说明泛型类型String和Integer都被擦除掉了,只剩下了原始类型。
泛型本身有一些限制。比如:
那么,利用反射,我们绕过编译器去调用 add 方法。
package cn.Douzi.T_Demo;import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List;public class T_demo01 {public static void main(String[] args) {// TODO Auto-generated method stub List<Integer> a1 = new ArrayList<Integer>();a1.add(123);try {Method method = a1.getClass().getDeclaredMethod("add", Object.class);method.invoke(a1, "test");method.invoke(a1, 43.9f);} catch (NoSuchMethodException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (SecurityException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (IllegalArgumentException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (InvocationTargetException e) {// TODO Auto-generated catch block e.printStackTrace();}for (Object e : a1) {System.out.println(e);}}}
这篇博客讲的巨好!收藏一下:https://blog.csdn.net/jeffleo/article/details/52250948
2. 泛型中的extend和super
这篇博客真棒:https://blog.csdn.net/qq_36898043/article/details/79655309
转载于:https://www.cnblogs.com/douzujun/p/10498169.html
Java笔记——泛型擦除相关推荐
- Java筑基——泛型的点点滴滴
目录 1. 泛型的作用 2. 泛型类 3. 泛型接口 4. 泛型方法 5. 泛型擦除 5.1 擦除是什么? 5.2 擦除时使用边界替换类型参数 5.3 擦除会插入类型转换来保持类型安全 5.4 擦除会 ...
- 【连载】Java笔记——欲品香醇先度根叶
我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...
- B站【狂神说Java笔记】-注解和反射
目录 狂神视频地址 1.什么是注解? 2.内置注解 3.元注解 4.自定义注解 5.Java反射概述 6.Class 类 7.哪些类型可以有Class 对象? 8.类加载与内存分析 9.什么时候会发生 ...
- 【连载】Java笔记——是了解咖啡小可爱的第一周呢
我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...
- java 获取泛型_聊聊Java泛型擦除那些事
>版权申明]非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/89789849 出自:shushen ...
- 十分钟理解Java泛型擦除
泛型信息只存在于代码编译阶段,但是在java的运行期(已经生成字节码文件后)与泛型相关的信息会被擦除掉,专业术语叫做类型擦除. 今天我们来讲解泛型中另一个重要知识点--泛型擦除! 泛型擦除概念 泛型信 ...
- 【Java 泛型】使用上下边界通配符解决泛型擦除问题
文章目录 前言 一.使用上边界通配符示例 二.分析字节码的附加信息 前言 上一篇博客 [Java 泛型]泛型用法 ( 泛型编译期擦除 | 上界通配符 <? extends T> | 下界通 ...
- 9.1-全栈Java笔记: 容器泛型—认识Collection接口
开发和学习中需要时刻和数据打交道,如果组织这些数据是我们编程中重要的内容. 我们一般通过"容器"来容纳和管理数据. 事实上,数组就是一种容器,可以在其中放置对象或基本类型数据. ...
- 深入理解 Java 泛型擦除机制
我们都知道 Java 中的泛型可以在编译期对类型检查,避免类型强制转化带来的问题,保证代码的健壮性.不同语言对泛型的支持也不一样,Java 中的泛型类型在编译期会擦除,下面一个例子可以证明这一点: p ...
- java同事不写泛型_跳了一次JAVA泛型擦除的坑
记录一下今天在帮同事解决使用spring参数注入问题的时候由于对泛型的理解不到位而遇到的坑. 如下代码所示: @RequestMapping(value="saveAll") pu ...
最新文章
- python txt文件读写(追加、覆盖)
- ASP.NET多语言网页设计
- 第七章 进程环境 | 001 命令形参、gcc与g++的使用
- vue之watch用法
- 源码安装MySQL5.5.20
- android 联系人中,在超大字体下,加入至联系人界面(ConfirmAddDetailActivity)上有字体显示不全的问题...
- 聊一聊HTTP缓存机制
- 李航《统计学习方法》课后习题答案(第2版)
- 面了6家大厂,我把问烂了的Redis常见面试题总结了一下(带答案)
- 针式打印机windows打印乱码(并口模式与DOS打印测试)
- 用BVP一比一还原自如客APP裸眼3D效果(Android原生)
- JAVA的jdk1.8中文文档
- 探秘Hadoop生态6:Hive技术初探与实践入门
- 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!
- linux sysinfo ()
- Wikibon:云计算2022年及以后的发展趋势
- 《德川家康》完整版的下载
- 《python数据挖掘》实战篇
- 系统架构与5G异构云无线入网关键技术(物联网电子类外文翻译)
- 如何在 Win7 下一键清空剪贴板