泛型的抽取放方 类型

package test;


import java.util.*;

import privateclass.*;

import java.io.*;

public class Main {

	private static final String space_operator = " ";
	public static void main(String[] args) throws Exception {

		Scanner scanner = new Scanner(new BufferedInputStream(System.in));
		PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
		
		ArrayList<String> a1 = new ArrayList<String>();
		
		a1.add("上水");
		a1.add("布谷鸟");
		
		printcollection1(a1);
		
		ArrayList<String> a2 = new ArrayList<String>();
		
		a2.add("zhuzhu");
		a2.add("zhiliao");
		
		printcollection1(a2);
		
		ArrayList<Integer> a3 = new ArrayList<Integer>();
		
		a3.add(4);
		a3.add(6);
		printcollection2(a3);
		
		printcollection3(a3);
		
		ArrayList<Student> a4 = new ArrayList<Student>();
		a4.add(new Student("治疗", 3));
		a4.add(new Student("唐三", 4));
		
		printcollection4(a4);
		
		
	}
	
	//只要是collection的小弟我们就可以打印出来不过我们的泛型是string
	public static void printcollection1(Collection<String> a1) {
		Iterator<String> it = a1.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
	}
	
	//当我们加了?只要是collection的小弟我们都可以打印出来
	public static void printcollection2(Collection<?> a1) {
		Iterator<?> it = a1.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
	}
	
	//当我们加了类型T我们就可以直接用T定义并且打印
	public static <T> T printcollection3(Collection<T> a1) {
		T t = null;
		Iterator<?> it = a1.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
		return t;
	}
	
	//当我们加上?extends 我们就可以限定加入的类型全是Person的子类或者Person类
	public static void printcollection4(Collection<? extends Person> a1) {
		Iterator<? extends Person> it = a1.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
	}
	
	//当我们加上?super 我们就可以限制这个类型的下限,我们这样接受的类型都是Student或者Student父类
	public static void printcollection5(Collection<? super Person> a1) {
		Iterator<? super Person> it = a1.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
	}
}

  

posted @ 2019-11-03 19:56  WINDZLY  阅读(299)  评论(0)    收藏  举报