Java泛型
Java泛型的作用一个是限制传入参数类型和类型转换更方便。
1. 类型限制在List集合中用得最多,本来List只要传一个Object就ok了,但为了程序的安全性(怕存在隐性的错误),加一个泛型的话,就知道集合真正需要的类型了。
public class MyList<E> { public void add(E e){ System.out.println(5); } public static void main(String[] args) { MyList<String> list = new MyList<String>(); list.add("3"); } }
你还可以指定多个未知类型public class MyList<E, U, T>{}
2. 类型转换更方便
public class BaseService<T, PK extends Serializable> extends HibernateDaoSupport { private Class<T> entityClass; public BaseService(){ this.entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; } public T getObject(PK id) { return (T) getHibernateTemplate().get(entityClass, id); } }
PK为限制主键的类型,T来限制主要的实体类。在BaseService的构造函数中通过反射读取到子类的泛型参数 实例化Class<T>, 然后session就可以根据这个Class来创建对象了,最后通过T来一个强制转换,完美收工。 2016-03-13 22:58:41
posted on 2016-03-13 22:48 angelshelter 阅读(265) 评论(0) 编辑 收藏 举报