一 、泛型是JDK1.5中一個最重要的特徵。通過引入泛型,我們將獲得編譯時類型的安全和運行時更小地拋出ClassCastException的可能。 如果使用泛型,只要代碼在編譯時沒有出現警告,就不會遇到運行時ClassCastException !
二、泛型的應用
1、在集合中的應用,指定集合中只能存放某一類型,<>裏面一定只能是引用類型,不能是基本類型,如:int等
ArrayList collection1 = new ArrayList(); //可能存放任意object對象
collection1.add(1);
collection1.add(1L);
collection1.add("abc");
int i = (Integer)collection1.get(1);//編譯時有警告,可能會拋出ClassCastException
ArrayList<String> collections = new ArrayList();//只能存放String對象
collections.add("泛型");
collections.add("string");
collections.add("abc");
String element = collections.get(1);//不用強制轉換類型
2、在web的應用,編寫通用Dao類,對數據庫數據進行crud操作.
/**Dao接口類*/
public interface Dao<T> {
public void save(T object);
public void delete(int id);
public T find(int id);
public void update(T object);
public List<T> findAll();
}
/**Dao接口實現類*/
public class DaoSupport<T> implements Dao<T> {
@Override
public void delete(int id) {
System.out.println("delete");
}
@Override
public T find(int id) {
System.out.println("find");
return null;
}
@Override
public List<T> findAll() {
System.out.println("findall");
return null;
}
@Override
public void save(T object) {
System.out.println("save");
}
@Override
public void update(T object) {
System.out.println("update");
}
}
編寫實體Dao類:
/**user實體dao類*/
public interface UserDao extends Dao<User>{
}
/**user實體dao實現類*/
public class UserDaoImpl extends DaoSupport<User> implements UserDao {
}
這樣userDao就具有了crud功能,其他dao類類似做法.