Java泛型小記

來源:互聯網
上載者:User

標籤:this   ati   stat   使用   對象   變更   物件類型   oid   編譯   

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());    }    }

 程式運行結果為:

IphoneXiaoMiHuaWeiVivoOneplus

 

Java泛型小記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.