程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java范型的兩種寫法

Java范型的兩種寫法

編輯:關於JAVA

1、原始的DAO層的類:

package com.test;

public class UserDao {
   
    public void add(User user){
        //.保存實體的代碼
    }
   
    public User get(int id) {
        //.查詢實體的代碼
        return null;
    }

}

其中,User類代碼比較簡單,如下:

package com.test;

public class User {
   
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
   
}

2、我們將Dao層的類寫成范型的形式,有兩種寫法:

其一、

package com.test;

public class EntityDao1 {
   
    public <T> void add(T t){
        //查詢實體的代碼
    }
   
    public <T,ID> T get(ID id){
        //.保存實體的代碼
        return null;
    }

}

范型一般用於方法的參數或者方法的返回值,上面的寫法,我們要使范型有效,就須在方法的返回類 型前加入強制范型轉換。其中,add(T t)的參數用了范型,它的返回值是void型,就在void 前用強制類 型轉換,即加上<T>,強制轉換成范型的形式,這樣就不會報錯了。而T get(ID id),由於它的參 數和返回類型都用了范型,故要在返回類型T前強制轉換,即<T,ID>。

其二,范型也可寫成以下形式:

package com.test;

public class EntityDao2<T,ID> {
   
    public void add(T t){
        //..保存實體的代碼
    }
   
    public T get(ID id){
        //.查詢實體的代碼
        return null;
    }

}

這種形式,是把范型聲明放在類中了,就不需每個方法都寫強制類型轉換。

看實際需要,哪種方法方便就用哪種吧!范型給Java編程帶來了許多方便,好好利用,會達到事半功 倍的效果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved