天天看点

通配符,泛型的限定

泛型通配符:

public class GenericDemo7 {

	public static void main(String[] args) {
		List<Student> list = new ArrayList<Student>();
		list.add(new Student("abc1",20));
		list.add(new Student("abc2",21));
		list.add(new Student("abc3",22));
		list.add(new Student("abc4",23));
		
		printCollection(list);
		
		Set<Work> set = new HashSet<Work>();
		set.add(new Work("sssii",14));
		set.add(new Work("abc",19));
		set.add(new Work("cba",20));
		
		printCollection(set);
	}

	private static void printCollection(Collection<?> coll) {//在不明确具体类型的情况下,可以使用通配符来表示
		for (Iterator<?> it = coll.iterator(); it.hasNext();) {
			Object obj =  it.next();
			System.out.println(obj);
			
		}
	}

}
           

泛型的限定:

? extends Person 泛型的上限

? super Person 泛型的下限