注意

泛型不能使用在静态属性上

泛型可以用在接口、抽象类、普通类上

泛型方法

泛型方法可以定义在非泛型类中,这个方法可以是静态方法或者成员方法;

public class Method {//泛型方法,是在返回类型前面加上<>public  static  <T> void say(T t){System.out.println(t);}public <T> T test(T x){//有返回值的泛型方法return  x;}
}

类型擦除(重点)

https://www.jianshu.com/p/36356dba3ee9

List<String> l1 = new ArrayList<String>();
List<Integer> l2 = new ArrayList<Integer>();System.out.println(l1.getClass() == l2.getClass());//输出true,因为类型擦除,最终都是Object

泛型信息只存在于代码编译阶段,在进入 JVM 之前,与泛型相关的信息会被擦除掉,专业术语叫做类型擦除。

code 1:

}public static void main(String[] args) {Map<String, String> map = new HashMap<String, String>();map.put("name", "hollis");map.put("age", "22");System.out.println(map.get("name"));System.out.println(map.get("age"));
}

反编译后的code 1:

}public static void main(String[] args) {Map map = new HashMap();map.put("name", "hollis");map.put("age", "22");System.out.println((String) map.get("name"));System.out.println((String) map.get("age"));
}

发现泛型都不见了,程序又变回了Java泛型出现之前的写法,泛型类型都变回了原生类型,

Java泛型原理、类型擦除相关推荐

  1. Java泛型:类型擦除

    前情回顾 Java泛型:泛型类.泛型接口和泛型方法 类型擦除 代码片段一 1 2 3 4 5 6 7 Class c1 = new ArrayList<Integer>().getClas ...

  2. java 泛型和类型擦除_关于Java泛型和擦除

    java 泛型和类型擦除 "编译期间擦除泛型"是常识(好吧,类型参数和实参实际上是被擦除的). 这是由于"类型擦除"而发生的. 但这是错误的,正如许多开发人员所 ...

  3. Java泛型的类型擦除

    写在前面:最近在看泛型,研究泛型的过程中,发现了一个比较令我意外的情况,Java中的泛型基本上都是在编译器这个层次来实现的.在生成的Java字节代码中是不包含泛型中的类型信息的.使用泛型的时候加上的类 ...

  4. Java泛型与类型擦除--ImportNew

    本文由 ImportNew - 伍翀 翻译自 On Java Generics and Erasure.欢迎加入翻译小组.转载请参见文章末尾的要求. "编译器会进行泛型擦除"是一个 ...

  5. 描述java泛型引入原则_Java/泛型的类型擦除/README.md · oslo/LearningNotes - Gitee.com

    前言 Java 泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换,但有一点需要注意:Java 的泛型在编译器有效,在运行期被删除,也就是说所有泛型参数类型在编译后都会被清除掉,看下 ...

  6. java object toarray_java从toArray返回Object[]到泛型的类型擦除

    在将ArrayList等Collection转为数组时,函数的返回值并不是泛型类型的数组,而是Object[].刚好最近翻了一遍<java核心技术>,以及参考<Think in Ja ...

  7. java中的类型擦除type erasure

    文章目录 简介 举个例子 原因 解决办法 总结 java中的类型擦除type erasure 简介 泛型是java从JDK 5开始引入的新特性,泛型的引入可以让我们在代码编译的时候就强制检查传入的类型 ...

  8. java什么是类型擦除_Java 泛型,你了解类型擦除吗?

    泛型,一个孤独的守门者. 大家可能会有疑问,我为什么叫做泛型是一个守门者.这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇.泛型是 Java 中一个很小巧的概念,但 ...

  9. Java基础篇:泛型与类型擦除

    一.什么是泛型: 泛型的本质是 参数化类型,也就是说 将所操作的数据类型 指定为一个参数,在不创建新类的情况下,通过参数来指定所要操作的具体类型(类似于方法中的变量参数,此时类型也定义成参数形式),也 ...

  10. java 泛型 擦除_Java泛型和类型擦除

    一 前言:初识泛型 废话不说,先来看一段代码: public class Holder { private Object data; public Holder(Object data ){ this ...

最新文章

  1. 静态Web服务器-返回固定页面数据
  2. python怎么下载-下载 python
  3. 获取不到app.config里面的数据库连接字符串的解决方法
  4. C Builder中如何利用消息
  5. 用户、组织结构、功能菜单、权限分配设计
  6. HTML元素-META全集
  7. [转载] 七龙珠第一部——第068话 最后的龙珠
  8. KDD 2022论文合集(持续更新中)
  9. 林达华——我的PhD生活
  10. 【刷题】【2.两数之和绝对值最小】
  11. hoolilaw解读:在美国一不小心就犯法 一言不合就法庭见
  12. 美国签证和加拿大签证申请及自驾游攻略合辑
  13. linux嵌入式系统开发心得,嵌入式学习牛人心得
  14. 数字图像处理风格化效果——马赛克处理
  15. 模型选择准则之AIC和BIC
  16. 浙大版《C语言程序设计(第3版)》题目集习题5-6 使用函数输出水仙花数 (20 分) 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1 ​3 ​​ +
  17. 微信服务号与订阅号的主要区别是什么?
  18. 美国房价仍在上涨,但购房需求今年首次低于2020年水平
  19. ARP家族--ARP,代理ARP,Gratuitous ARP
  20. 笔记: 计算天区面积的方法

热门文章

  1. pytorch 网络搭建简要步骤
  2. DRL实战 : N-Armed Bandits问题
  3. 容器技术Docker K8s 4 容器编排技术基础-Kubernetes
  4. 2021-09-06146. LRU 缓存机制 哈希表
  5. Python数据结构,线性结构:栈、队列、双端队列、列表
  6. The evolved Transformer,进化的变换器
  7. 【机器学习系列】EM算法第三讲:由Jensen Inequality推导EM算法
  8. 冒泡、选择、快速、归并、堆排序算法 python实现
  9. 现代通信原理6.1 常规调幅调制(AM)与抑制载波双边带(DSB-SC)调制
  10. 2020_0527_近期思考