泛型通配符类型

Pair<? extends S>,Pair能接收的类型参数,是S本身或子类
只能get,不能set,编译器只能保证出来的类型,即只生产,不消费
Pair<? super Apple>代表Pair<Object>,Pair<Fruit>,Pair<Apple>

Pair<Apple> apples = new Pair<>(new Apple(3),new Apple(4));
Pair<? extends Fruit> fruits = apples;
fruits.setFirst(new Orange(5));//编译错误

Pair<? super S>,Pair能接收的类型参数,是S本身或超类
只能set,不能get,编译器只能保证放入的是S本身或超类,但不保证出来是什么具体类型,即只消费,不生产
Pair<? super Apple>代表Pair<Object>,Pair<Fruit>,Pair<Apple>

Pair<? super Apple> fruits = new Pair<Fruit>();

fruits.setFirst(new Apple(5));//Apple到超类的转型
fruits.setSecond(new GreenApple(5));//GreenApple到超类的转型
Fruit obj = fruits.getFirst();//报错,未知其超类对象的方法
fruits.getFirst().hello();//报错,未知其超类对象的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值