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編程帶來了許多方便,好好利用,會達到事半功 倍的效果。