网站开发保障合同,龙岩网站建设运营,做cpa联盟必须要有网站吗,个人博客网站制作流程ListString与ListObject#xff0c;并不具备父子类关系
ListObject与ArrayListObject 存在父子类关系
通配符#xff1a;
? 通配符的读取和写入的要求#xff1a;
对于list? 不能在添加数据#xff1a; list.add()不…
ListString与ListObject并不具备父子类关系
ListObject与ArrayListObject 存在父子类关系
通配符
? 通配符的读取和写入的要求
对于list? 不能在添加数据 list.add()不行,除了添加Null之外 读取只能读取到Object 有限制条件的通配符的使用 package TongPeiFu;import org.junit.Test;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class test {Testpublic void test(){ListObject list1 null;ListString list2 null;List? list null;list list1;list list2;ListString list3 new ArrayList();list3.add(aa);list3.add(bb);list3.add(cc);list list3;}public void show(List? list){Iterator? iterator list.iterator();while (iterator.hasNext()){Object obj iterator.next();System.out.println(obj);}}Testpublic void test2(){List? extends Person list1 null;List? super Person list2 null;ListPerson list3 null;ListStudent list4 null;ListObject list5 null;// ? extends Person 此时指Person类的子类或Person类本身不能时Person类的父类Objectlist1 list3;list1 list4;
// list1 list5;// ? super Person同理;// 接受数据list3 new ArrayListPerson();list4 new ArrayListStudent();list5 new ArrayListObject();list1 list4;
// Student st list1.get(0); list1的泛型是 ?extends Person的,所以最小只能用Person接收list2 list3;
// list2 泛型结构为? super Person只能用Object的对象接受Object obj list2.get(0);// 写入数据
// 对于list1来讲: 其泛型结构是Person的子类,所以不确定
// list1.add(new Student()); 不可以
// list1.add(new Person()); 不可以// 对于list2来讲:其泛型结构是Person的父类,所以Person类及其子类都可以写入list2.add(new Person());list2.add(new Student());
// list2.add(new Object()); 不可以}
}class Person{}
class Student extends Person{}