1. 程式人生 > 資訊 >比亞迪預熱新車“海豹”:全新海洋美學設計,輕逸生動

比亞迪預熱新車“海豹”:全新海洋美學設計,輕逸生動

java泛型

  • 泛型方法及泛型類

    public class testOne<Q> {
    	private Q q;
    	public void set(Q q) {
    		this.q=q;
    	}
    	public Q get() {
    		return q;
    	}
    	public void print(Q str) {
    		System.out.println(str);
    	}
    }
    
  • 靜態方法使用泛型:要在返回型別前使用定義泛型

    public class staticMethod<T> {
    	public static<T> void print(T t) {
    		System.out.println(t);
    	}
    }
    
  • 泛型介面

    public interface interf1 <P>{
    public void print(P p);
    }
    //實現介面時指明確定的資料型別
    public class interImp implements interf1<String> {
    @Override
    public void print(String p) {
    	// TODO Auto-generated method stub
    	System.out.println(p);
    }
        //繼承泛型介面
        public class interImp2<P> implements interf1<P> {
    
    	@Override
    	public void print(P p) {
    		// TODO Auto-generated method stub
    		System.out.println(p);
    	}
    
    }
    }
    
  • 泛型的萬用字元:使用?作為萬用字元

    	public static void printColl(ArrayList<?> a) {
    		Iterator<?> t=a.iterator();
    		while(t.hasNext()) {
    			System.out.print(t.next());
    		}
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    	testOne<String> t1=new testOne<String>();
    	t1.print("wq");
    	t1.set("ew");
    	System.out.println(t1.get());
    	staticMethod<Integer> s=new staticMethod<Integer>();
    	s.print(520);
    	interImp<String> in=new interImp<String>();
    	in.print("wqop");
    	ArrayList<Integer> a1=new ArrayList<Integer>();
    	a1.add(1);
    	a1.add(2);
    	a1.add(3);
    	ArrayList<String> a2=new ArrayList<String>();
    	a2.add("誰");
    	a2.add("在");
    	a2.add("說話");
    	printColl(a1);
    	printColl(a2);
    }
    執行結果:
    wq
    ew
    520
    wqop
    123誰在說話
    
  • 泛型的上限:可接收該類和該類的子類,使用extend關鍵字

    ​ 先假設一個person類,其子類有student,

    ​ 設定上限:public static void printColl(ArrayList<? extend person> a) //?可以接收到person及student,也就是說只要繼承了person的都可以接收。

  • 泛型的下限:可接收該類和該類的父類,使用super關鍵字

    ​ 設定下限:public static void printColl(ArrayList<? super student> a)//?可以接收到person及student

    只要父類是student都可以接收。