如何理解通配符在 Java 中的使用有两种形式:? extends T 和 ? super T。

本文介绍了Java泛型中的?extendsT和?superT通配符,分别用于只读和只写操作,增强了数据处理的灵活性,强调了类型安全的重要性。?extendsT代表上界类型,用于读取,而?superT表示下界类型,用于写入。
摘要由CSDN通过智能技术生成
  1. ? extends T:表示某个未知类型,它是 T 类型的子类(包括 T 自身),也就是上界为 T。这种通配符主要用于读取数据,例如遍历列表并读取元素。由于通配符的上界是 T,(我们可以举出一个例子,假如T是Number类型,他的子类就有可能是Float或Integer,如果是Integer就无法再给他赋予Float)所以无法向其中添加任何元素,因为我们无法确定实际类型是Float还是Integer或者其他子类型。在使用时,可以将该通配符参数视为只读的。

  2. ? super T:表示某个未知类型,它是 T 类型的父类(包括 T 自身),也就是下界为 T。这种通配符主要用于写入数据,例如向列表中添加元素。由于通配符的下界是 T,(可以把他看作是Object)所以可以向其中添加 T 类型的元素,但无法确切知道列表中的元素类型。在使用时,可以将通配符参数视为只写的。

这两种通配符的使用方式是为了增强泛型的灵活性。通配符允许我们处理未知类型的数据,但在使用时需要注意保证类型安全。通常情况下,如果需要从集合中读取数据,则使用 ? extends T;如果需要向集合中写入数据,则使用 ? super T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值