7.7.3、下界通配符

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
下界通配符

上界通配符 部分显示:上界通配符将未知类型限制为该类型的特定类型或子类型,并使用extends 关键字表示。类似地,下界通配符将未知类型限制为特定类型或该类型的超类型。

下界通配符使用通配符(’?’)表示,后跟super 关键字,后跟它的下界:<? super A>。


注意: 你可以指定上界通配符,也可以指定下界通配符,但无法同时指定上界和下界通配符。


假设你想要编写一个将Integer 对象放入列表的方法。为了最大化该方法的灵活性,你希望该方法在List<Integer>、List<Number>和List<Object>—任何可以保存Integer 值的对象上工作。

要编写在Integer 列表和Integer 超类型(如Integer、Number和Object)上工作的方法,可以指定List<? super Integer>。术语List<Integer>比List<? super Integer>限制更严格,因为前者只匹配Integer 类型的列表,而后者匹配Integer超类型的列表。

下面的代码将数字1到10添加到列表的末尾:

public static void addNumbers(List<? super Integer> list) {
    for (int i = 1; i <= 10; i++) {
        list.add(i);
    }
}

通配符使用指南部分提供了何时使用上界通配符以及何时使用下界通配符的指导。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值