14.1泛型好处的体现
1) 能对加入到集合 ArrayList中的数据类型进行约束
2) 如果没有泛型,遍历的时候,需要进行类型转换, 如果集合中的数据量较大,对效率有影响
14.2类型推断
Map<String,Integer>map=newHashMap<>();
14.3泛型在继承方面的体现
虽然类A是类B的父类,但是G<A> 和G<B>二者不具备子父类关系,二者是并列关系。 List<Object> List<String>
补充:类A是类B的父类,A<G> 是 B<G> 的父类 List<String> ArrayList<String>
14.4通配符的使用
通配符:?
类A是类B的父类,G<A>和G<B>是没有关系的,二者共同的父类是:G<?>
14.5泛型的应用
publicclassDAO<T>{//表的共性操作的DAO
//添加一条记录
publicvoidadd(Tt){
}
//删除一条记录
publicbooleanremove(intindex){
returnfalse;
}
//修改一条记录
publicvoidupdate(intindex,Tt){
}
//查询一条记录
publicTgetIndex(intindex){
returnnull;
}
//查询多条记录
publicList<T>getForList(intindex){
returnnull;
}
//泛型方法
//举例:获取表中一共有多少条记录?获取最大的员工入职时间?
public<E>EgetValue(){
returnnull;
}
}
publicclassCustomer{//此类对应数据库中的customers表
}
publicclassCustomerDAOextendsDAO<Customer>{//只能操作某一个表的DAO
}
publicclassDAOTest{
@Test
publicvoidtest1(){
CustomerDAOdao1=newCustomerDAO();
dao1.add(newCustomer());
List<Customer>list=dao1.getForList(10);
}
}