Java SE复习笔记63

本文探讨了Java泛型中List<String>与List<Object>之间的关系,并解释为什么前者不能作为后者的子类使用。同时介绍了通配符的两种用法:?extends A限定类型为A及其子类;?super A限定类型为A及其父类。

泛型与集成的关系

List<Object> list = null;

List<String> list1 = new ArrayList<String>();

list = list1;  错误的

//假设list = list1 满足    list  引用 指向了 list1 的地址

//那么 list.add(123);  就可以添加,编译可以通过

//但是 list.get(0);  //获取到时变成了Integer 而不是String  就错误了。显然不正确,所以List<String> 不是 List<Object> 的子接口

 

通配符 ?

List<?> list = null;

List<String> list1 = new ArrayList<String>();

List<Object> list2 = new ArrayList<Object>();

list = list1;

list = list2;

 

List<?> 是 List<A> List<B> .... 等的父类

 

? extends A  可以存放A 及其子类   ?类型 <= A

? super A 可以存放A及其父类  ?类型 >= A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值