一 、泛型是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类类似做法.