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编辑  收藏  举报

导航