第十四节 泛型

68 阅读1分钟

14.1泛型好处的体现

  1. 能对加入到集合 ArrayList中的数据类型进行约束 2) 如果没有泛型,遍历的时候,需要进行类型转换, 如果集合中的数据量较大,对效率有影响

14.2类型推断

Map<String,Integer> map = new HashMap<>();

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泛型的应用

public class DAO<T> {//表的共性操作的DAO
​
    //添加一条记录
    public void add(T t){
    }
​
    //删除一条记录
    public boolean remove(int index){
        return false;
    }
​
    //修改一条记录
    public void update(int index,T t){
    }
​
    //查询一条记录
    public T getIndex(int index){
        return null;
    }
​
    //查询多条记录
    public List<T> getForList(int index){
        return null;
    }
    
    //泛型方法
    //举例:获取表中一共有多少条记录?获取最大的员工入职时间?
    public <E> E getValue(){
        return null;
    }
​
}
​
public class Customer { //此类对应数据库中的customers表
}
​
public class CustomerDAO extends DAO<Customer>{//只能操作某一个表的DAO
}
​
public class DAOTest {
    @Test
    public void test1(){
        CustomerDAO dao1 = new CustomerDAO();
​
        dao1.add(new Customer());
        List<Customer> list = dao1.getForList(10);
    }
}