泛型是Java中一個非常重要的知識點,在Java集合類別框架中泛型被廣泛應用。本文我們將從零開始來看Java泛型
Automobile類別:
public class Automobile { private String name; public Automobile(String name){ this.name= name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Holder1類別:持有指定的單一類型物件。
public class Holder1 { private Automobile automobile; public Holder1(Automobile automobile){ this.automobile = automobile; } public Automobile get(){ return this.automobile; } }
Holder2類別:持有Object物件。
public class Holder2 { private Object object; public Holder2(Object object){ this.setObject(object); } public Object getObject() { return object; } public void setObject(Object object) { this.object = object; } }
Holder3類別:使用泛型,持有單一對象,但暫時不指定其類型,到使用時決定持有何種對象。
public class Holder3 <T>{ private T t; public Holder3(T t){ this.setT(t); } public T getT() { return t; } public void setT(T t) { this.t = t; } }
主程式Main:
public class Main { public static void main(String[] args) { /*使用Holder1*/ Holder1 holder1 = new Holder1(new Automobile("Iphone")); System.out.println(holder1.get().getName()); /*使用Holder2*/ //使holder2持有String类型对象 Holder2 holder2 = new Holder2("XiaoMi"); System.out.println(holder2.getObject()); //更改holder2中持有的对象类型 holder2.setObject(new Automobile("HuaWei")); //向下转型Object->Automobile Automobile automobile = (Automobile) holder2.getObject(); System.out.println(automobile.getName()); /*使用Holder3*/ //告诉编译器holder3持有的对象类型为String //此时holder3拥有的对象类型只能为String,不能变更 Holder3<String> holder3 = new Holder3<String>("Vivo"); System.out.println(holder3.getT()); //告诉编译器anotherHolder3持有的对象类型为Automobile //此时anotherHolder3拥有的对象类型只能为Automobile,不能变更 Holder3<Automobile> anotherHolder3 = new Holder3<Automobile>(new Automobile("Oneplus")); System.out.println(anotherHolder3.getT().getName()); } }
程式運作結果為:
Iphone XiaoMi HuaWei Vivo Oneplus
【相關推薦】
#1. Java泛型解說
以上是總結Java泛型實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!