Java泛型試驗


public class Generic {

public static void main(String[] args) {

List<Person> persons = new ArrayList<Person>();

// 1 泛型類型的方法可操作其定義的類型的對象或子對象
persons.add(new Person());
persons.add(new Man());

// 2 G<Man>並不是G<Person>的子類型
// List<Person> persons = new ArrayList<Man>(); X

// 3 通配符?代表未知類型
List<?> list = new ArrayList<Person>();
// 3.1 <?> != <Object>
// List<Object> objs = new ArrayList<Person>(); X
// 3.2 List<?>無法調用add方法添加對象,除了添加null,null是所有類型的子類型
// list.add(new Person()); X
list.add(null);

// 4 有界通配符
List<? extends Person> men = new ArrayList<Man>();
// 4.1 仍然無法使用add方法,除了null
// men.add(new Person()); X
// men.add(new Man()); X
men.add(null);

List<? super Man> men1 = new ArrayList<Person>();
List<? super Man> men2 = new ArrayList<Man>();
men1.add(new Man());

men1.add(new Man());
// men1.add(new Person()); X

men2.add(new Man());

}

}

class Person {

}

class Man extends Person {

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章