1.解决元素存储的安全类型2.获取元素需要强制转换
集合时候没有使用泛型任何元素类型加入集合中,强制转换时候有可能报错
解决:限制集合的类型,不允许其他类型加入集合,在集合怎么使用泛型 List<>源码使用泛型进行编程
List<Integer> list=new ArrayList<Integer>();
泛型使用:
1.集合中使用泛型 2.自定义泛型类,泛型接口和泛型的方法
3.泛型与继承的关系4,通配符
自定义泛型类 没有实例化默认的是Object类型
泛型方法:对象调用泛型方法指明泛型的方法
1 // 泛型方法: 不同于T类型,处理其他类型 2 public <E> E getE(E e) 3 { 4 return e; 5 }
1 public <E> List<E> formArrayToList(E[] e,List<E>list) 2 { 3 for(E e1:e) 4 list.add(e1); 5 return list; 6 7 }
泛型与继承的关系:
如果类A是类B的子类,那么List<A>不是List<B>的子类
通配符:解决List<A>,List <B>都是List<?>的子类
?extends A:存放 A即其子类 ;?super A存放A和其父类
对于通配符的使用:
可以读取声明为通配符的集合类的对象--读取认为其是Object类型,不能够写入
3.泛型的核心思想:把集合中的内容限制为一个特定类型,就是泛型的核心思想:
1.静态方法中不能使用泛型
2.不能在catch使用
3.泛型类是一个接口或者抽象类,不能够实例化泛型类的对象
4.泛型的子类必须要具体化 JDBCIm extends DAO<Customer> :泛型的子类必须具体化