java限制条件,JAVA高级复习-有限制条件的通配符的使用

/**

* 有限制条件的通配符的使用

*/

public class GenericTest9 {

/**

* 结论:

* ? extends A :

* G extends A> 可以作为G 和 G的父类,其中B是A的子类

* ? super A :

* G super A> 可以作为G 和 G的父类,其中B是A的父类

*/

@Test

public void test01() {

List extends Person> list = null;

List super Person> list2 = null;

List list3 = new ArrayList<>();

list3.add(new Man("AA", 10));

List list4 = new ArrayList<>();

list4.add(new Person("AA"));

List list5 = new ArrayList<>();

list = list3;

// list = list4;

//list5 不能 自动向上转型为list

// list = list5;

Person person = list.get(0);

//编译不通过

// Man man = list.get(0);

//list3 不能 自动向上转型为list2

// list2 = list3;

list2 = list4;

list2 = list5;

Object object = list2.get(0);

//编译不通过

// Person p = list2.get(0);

//写入数据:

// 编译都不通过

// list.add(new Man("BB"));

// list.add(new Person());

// list.add(new Object());

list2.add(new Man("CC"));

list2.add(new Person());

}

}

class Person {

String name;

public Person() {

}

public Person(String name) {

this.name = name;

}

}

class Man extends Person{

Integer age;

public Man(String name) {

super(name);

}

public Man(String name, Integer age) {

super(name);

this.age = age;

}

}

原文:https://www.cnblogs.com/elnimo/p/13669860.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值