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笔记——泛型擦除相关推荐

  1. Java筑基——泛型的点点滴滴

    目录 1. 泛型的作用 2. 泛型类 3. 泛型接口 4. 泛型方法 5. 泛型擦除 5.1 擦除是什么? 5.2 擦除时使用边界替换类型参数 5.3 擦除会插入类型转换来保持类型安全 5.4 擦除会 ...

  2. 【连载】Java笔记——欲品香醇先度根叶

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  3. B站【狂神说Java笔记】-注解和反射

    目录 狂神视频地址 1.什么是注解? 2.内置注解 3.元注解 4.自定义注解 5.Java反射概述 6.Class 类 7.哪些类型可以有Class 对象? 8.类加载与内存分析 9.什么时候会发生 ...

  4. 【连载】Java笔记——是了解咖啡小可爱的第一周呢

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  5. java 获取泛型_聊聊Java泛型擦除那些事

    >版权申明]非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/89789849 出自:shushen ...

  6. 十分钟理解Java泛型擦除

    泛型信息只存在于代码编译阶段,但是在java的运行期(已经生成字节码文件后)与泛型相关的信息会被擦除掉,专业术语叫做类型擦除. 今天我们来讲解泛型中另一个重要知识点--泛型擦除! 泛型擦除概念 泛型信 ...

  7. 【Java 泛型】使用上下边界通配符解决泛型擦除问题

    文章目录 前言 一.使用上边界通配符示例 二.分析字节码的附加信息 前言 上一篇博客 [Java 泛型]泛型用法 ( 泛型编译期擦除 | 上界通配符 <? extends T> | 下界通 ...

  8. 9.1-全栈Java笔记: 容器泛型—认识Collection接口

    开发和学习中需要时刻和数据打交道,如果组织这些数据是我们编程中重要的内容. 我们一般通过"容器"来容纳和管理数据.   事实上,数组就是一种容器,可以在其中放置对象或基本类型数据. ...

  9. 深入理解 Java 泛型擦除机制

    我们都知道 Java 中的泛型可以在编译期对类型检查,避免类型强制转化带来的问题,保证代码的健壮性.不同语言对泛型的支持也不一样,Java 中的泛型类型在编译期会擦除,下面一个例子可以证明这一点: p ...

  10. java同事不写泛型_跳了一次JAVA泛型擦除的坑

    记录一下今天在帮同事解决使用spring参数注入问题的时候由于对泛型的理解不到位而遇到的坑. 如下代码所示: @RequestMapping(value="saveAll") pu ...

最新文章

  1. python txt文件读写(追加、覆盖)
  2. ASP.NET多语言网页设计
  3. 第七章 进程环境 | 001 命令形参、gcc与g++的使用
  4. vue之watch用法
  5. 源码安装MySQL5.5.20
  6. android 联系人中,在超大字体下,加入至联系人界面(ConfirmAddDetailActivity)上有字体显示不全的问题...
  7. 聊一聊HTTP缓存机制
  8. 李航《统计学习方法》课后习题答案(第2版)
  9. 面了6家大厂,我把问烂了的Redis常见面试题总结了一下(带答案)
  10. 针式打印机windows打印乱码(并口模式与DOS打印测试)
  11. 用BVP一比一还原自如客APP裸眼3D效果(Android原生)
  12. JAVA的jdk1.8中文文档
  13. 探秘Hadoop生态6:Hive技术初探与实践入门
  14. 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!
  15. linux sysinfo ()
  16. Wikibon:云计算2022年及以后的发展趋势
  17. 《德川家康》完整版的下载
  18. 《python数据挖掘》实战篇
  19. 系统架构与5G异构云无线入网关键技术(物联网电子类外文翻译)
  20. 如何在 Win7 下一键清空剪贴板

热门文章

  1. 我经常逛的技术网站,个个经典
  2. 华为:行业危机时,只做一件事:抢人!
  3. 工地小哥逆袭转行程序员的真实故事
  4. 花了 2 元,用 1 根网线发起攻击,控制上千人
  5. 【运维安全】Apache 服务器存在高危提权漏洞,请升级至最新版本 2.4.39
  6. 进来看下你的工资水平
  7. 对象可以创建数组吗_女生没房可以吗?男生有多在意结婚对象的家境?答案很现实...
  8. ADB命令行工具使用
  9. dubbo安装和使用
  10. java 实现多重继承