泛型 : 你以为你真的了解我吗?

本文深入探讨Java泛型机制,包括泛型的历史、约定、通配符使用、有界类型参数及泛型擦除等核心概念。理解泛型如何增强代码的复用性和安全性,掌握泛型在实际编程中的应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

养不起的恋柱

你真的了解我吗?
  1. 类和接口的一种扩展机制:数据类型参数化(数据类型成了个变量,你填啥数据类型就是啥数据类型),也叫类型参数。
  2. Java5才有的,从Java SE7开始,创建泛型使用菱形语法就是 <>;
    2.1约定:E – 元素;K – 键;V – 值;T – 类型;N – 数字;
  3. 通配符(?)的使用:在泛型方法中List并不是List的子类,这时候就得使用List<?>了,意味着:该方法接受元素是任何类型的list对象。
  4. 有界类型参数:限制泛型的数据类型的范围。
    4.1上界:List<?extends Number> 类型参数可以是Number类型及其子类的;
    4.2下界:List<? super Integer> 类型参数可以是Integer类型或是其父类的;
    4.3一般意义,接口也是这样使用的。
    4.4在<>中再加上 & 接口,表示这个类型参数还实现了某接口;
  5. 泛型擦去:实例化时,编译器使用的一种技术,就是把泛型转换成源类型(raw type)。(就是这时,它具体是什么数据类型就是什么类型)使得泛型能和早期遗留代码(没使用泛型的)兼容。
    当然这也意味着:运行时,是找不到泛型到底是什么类型;再有就是generic type与raw type不能混合使用的(不是像类那种的继承关系),会被警告的。
我结束了,你呢?

参考文献:Java语言程序设计(第3版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值