Java基礎複習:泛型

來源:互聯網
上載者:User

引入:設計一個表示座標的類Point,該類有兩個欄位,橫座標和縱座標,要求座標有3種表達形式。

(1)整數

(2)小數

(3)字串

/* * 利用泛型表示座標點 * 定義一個類的時候,採用T來表示一種類型,僅僅表示預留位置; * 但是此時真正的類型尚未確定,使用的時候才確定 */public class Point<T> {//橫座標private T x;//縱座標private T y;public T getX() {return x;}public void setX(T x) {this.x = x;}public T getY() {return y;}public void setY(T y) {this.y = y;}}

測試類別:

public class PointDemo {public static void main(String[] args) {//給定泛型型別的時候,只能給定參考型別(基礎資料型別 (Elementary Data Type)的封裝類)Point<Integer> p = new Point<>();p.setX(1);p.setX(2);Point<Double> p2 = new Point<>();p2.setX(2.0);p2.setY(3.0);Point<String> p3 = new Point<String>();p3.setX("3");p3.setY("4");}}

 

泛型是Java5開始出現的,以支援建立可以按類型進行參數化類別。

泛型能保證大型應用程式的型別安全和良好的維護性。

若一個類中多個欄位需要不同的泛型聲明,則在聲明類的時候指定多個泛型類即可:

public interface IDAO<PK, T> {PK add(T t);void remove(PK id);void update(PK id, T t);T get(PK id);}

使用泛型萬用字元:在進行應用傳遞的時候泛型型別必須匹配才可以傳遞,否則編譯不通過。

使用“?”,表示未知類型的泛型對象。

 

泛型上下限:

上限:<? extends Numer>  表示參數類型只能是該I類型或該類型的子類

下限:<? super String> 表示參數類型只能是該類型或該類型的父類

 

泛型方法:

/** * <T>表示聲明使用 T 表示一種類型, 範圍僅僅在該方法類 * @param t */public static <T> void show(T t) {System.out.println(t.getClass());//獲得對象的真正類型}

 

泛型介面:

(1)聲明泛型DAO介面,讓子類來繼承

import java.io.Serializable;import java.util.List;public interface IGenericDAO<T> {void add(T o);void remove(Serializable id);void update(Serializable id,T newObj);T get(Serializable id);List<T> getAll();}

(2)聲明子類DAO介面,並繼承泛型介面

public interface IDeptDAO extends IGenericDAO<Dept> {}

(3)聲明泛型DAO介面的實作類別

public class GenericDAOImpl<T> implements IGenericDAO<T>{@Overridepublic void add(T o) {}@Overridepublic void remove(Serializable id) {}@Overridepublic void update(Serializable id, T newObj) {}@Overridepublic T get(Serializable id) {return null;}@Overridepublic List<T> getAll() {return null;}}

(4)聲明子類介面的實作類別

public interface IDeptDAO extends IGenericDAO<Dept>{}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.