"Java 泛型总结(一):基本用法与类型擦除" Java 泛型是 Java 语言中的一种强大功能,它可以使代码更加简洁、安全。下面是对 Java 泛型的基本用法和类型擦除机制的介绍。 泛型的基本用法 ------------- 泛型是参数化类型,也就是说变量的类型是一个参数,在使用时再指定为具体类型。泛型可以用于类、接口、方法,通过使用泛型可以使代码更简单、安全。 例如,我们可以定义一个泛型类 Holder: ``` public class Holder<T> { private T a; public Holder(T a) { this.a = a; } public T get() { return a; } public void set(T a) { this.a = a; } } ``` 在上面的例子中, Holder 类有一个泛型参数 T,我们可以在创建 Holder 对象时指定 T 的类型,例如: ``` Holder<String> holder = new Holder<>("Generic"); ``` 这样,在 holder 对象中,所有出现 T 的地方相当于都用 String 替换了。 泛型的类型擦除 ------------- Java 中的泛型使用了类型擦除机制,所谓类型擦除是指编译器在编译泛型代码时,将泛型信息擦除,编译成普通的 Java 代码。这种机制使得泛型代码可以在 Java 1.4 及更低版本中运行。 例如,编译器将上面的 Holder 类编译成: ``` public class Holder { private Object a; public Holder(Object a) { this.a = a; } public Object get() { return a; } public void set(Object a) { this.a = a; } } ``` 可以看到,编译器将泛型参数 T 替换成了 Object,编译成普通的 Java 代码。 泛型方法 ----- 泛型不仅可以针对类,还可以单独使某个方法是泛型的。例如: ``` public class GenericMethod { public <K,V> void f(K k,V v) { System.out.println(k.getClass().getSimpleName()); System.out.println(v.getClass().getSimpleName()); } } ``` 在上面的例子中,方法 f 是一个泛型方法,它可以接受两个泛型参数 K 和 V。 总结 ---- 本文主要介绍了 Java 泛型的基本用法和类型擦除机制。泛型可以使代码更加简洁、安全,然而 Java 中的泛型使用了类型擦除机制,只是伪泛型。通过使用泛型,我们可以编写更加简洁、安全的代码。 在下一篇文章中,我们将继续介绍 Java 泛型的其他用法和问题,敬请关注。
- 粉丝: 2
- 资源: 901
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 8bit逐次逼近型SAR ADC电路设计成品 入门时期的第三款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,3.3V供电 整体采样率500k,可实现基
- 操作系统实验 ucorelab4内核线程管理
- 脉冲注入法,持续注入,启动低速运行过程中注入,电感法,ipd,力矩保持,无霍尔无感方案,媲美有霍尔效果 bldc控制器方案,无刷电机 提供源码,原理图
- Matlab Simulink#直驱永磁风电机组并网仿真模型 基于永磁直驱式风机并网仿真模型 采用背靠背双PWM变流器,先整流,再逆变 不仅实现电机侧的有功、无功功率的解耦控制和转速调节,而且能实
- 157389节奏盒子地狱模式第三阶段7.apk
- 操作系统实验ucore lab3
- DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 这段程序是一个改进的粒子群算法,主要用于解决电力系统中的优化问题 下面我将对程序进行详
- final_work_job1(1).sql
- 区块链与联邦学习结合:FedChain项目详细复现指南
- 西门子S7 和 S7 Plus 协议开发示例