比亞迪預熱新車“海豹”:全新海洋美學設計,輕逸生動
阿新 • • 發佈:2022-04-12
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都可以接收。