泛型的设计背景
泛型的概念
为什么要有泛型?
在集合中使用泛型的情况:
泛型的使用
1.jdk 5.e新增的特性
2.在集合中使用泛型:
-
总结:
- 集合接口或集合类在jdk5.e时都修改为带泛型的结构。
- 在实例化集合类时,可以指明具体的泛型类型
- 指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例用的泛型类型。比如:add(Ee)–>实例化以后:add(Integere)
- @注意点:泛型的类型必须是类,不能是基本数据类型。需要用到基本数据类型的位置,拿包装类替换
- 如果实例化时,没有指明泛型的类型。默认类型为java.Lang.Object类型。
3.如何自定义泛型结构:泛型类、泛型接口;泛型方法
自定义的泛型类:(把T想象成类,就好理解了,但不是真的类,在实例化时确定T的类型)
由于子类在继承带泛型的父类时,指明了泛型类型。则实例化子类对象时,不再需要指明泛型。
自定义泛型结构:泛型类、泛型接口
##泛型的方法
//泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有在何关系。
//换句话说,泛型方法所属的类是不是泛型类都没有关系。
//泛型方法,可以声明为静态的。原因:泛型参数是在调用方法时确定的。并非在实例化类时确定。
泛型在数据库操作时的应用:
表的的共性操作的DAO
另一张表:只能操作某一个表的DAO
##泛型在继承方面的体现:
类A是类8的父类,G和G二者不具备子父类关系,二者是并列系。|
补充:类A是类8的父类,A
反例
通配符的使用
- 通配符:?
- 类A是类B的父类,G和G是没有关系的,二者共同的父类是:G<?>
有限制的通配符