Java泛型

  Java的泛型是5.0的特性,自己的业务代码中或许较少使用,在Java集合库中却可以经常看到。最近在Appfuse中看到的GenericDao等中常见泛型的身影。泛型就如这个名称,适用编写一些通用型的代码,这是在开发库封装中经常遇到的。

  泛型常用T做代称,其实其他任何字符也是可以的,例如,PK可以代指主键。下面给一段例子代码:

public class GenericDaoHibernate<T, PK extends Serializable> extends
		HibernateDaoSupport implements GenericDao<T, PK> {
	private Class<T> persistentClass;
}

 另外有个值得区别的是通配符泛型,一个问号,通配符匹配让泛型支持多态。看下面的例子:

// the following will compile error 
// CollectionGenFoo<Collection> listFoo = null;
// listFoo=new CollectionGenFoo<ArrayList>(new ArrayList());

// the following is ok
ollectionGenFoo<? extends Collection> listFoo = null;
istFoo=new CollectionGenFoo<ArrayList>(new ArrayList());
 

你可能感兴趣的:(泛型,骄傲)