目录
-
- 一.泛型:
-
-
- 1.集合中使用泛型:
- 2.泛型的嵌套:
- 3.总结:
-
- 二.如何自定义泛型结构:
-
-
- 1.泛型类:
-
-
- (1).继承中的泛型类:
-
- 2.泛型方法:
-
- 三.自定义泛型注意点:
- 四.泛型在继承方面的体现:
一.泛型:
JDK5.0的新特性
1.集合中使用泛型:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn5EMjpnT4NGROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3YjM3QTN1MTMwMjNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.泛型的嵌套:
3.总结:
- 集合接口或集合类在jdk5.0时都修改为带泛型的结构。
- 在实例化集合类时,可以指明具体的泛型类型
- 指明完以后,在集合类或集合中凡是定义类或接口时,内部结构 (方法,属性,构造器) 使用到类的位置,都指定为实例化的泛型类型。比如:add(E e) ----> 实例化以后:add(Integer e)
- 注意点:泛型的类型必须是一个类,不能是基本数据类型。需要用到基本数据类型的位置,拿包装类替换。
- 如果实例化时,没有指明泛型的类型。默认类型为java.lang.object类型。
二.如何自定义泛型结构:
1.泛型类:
(1).继承中的泛型类:
继承中直接指明泛型的类型:
继承中继承父类中的泛型:
2.泛型方法:
在泛型的方法中出现了泛型的结构,泛型的参数与类的泛型的参数没有任何关系。
泛型所属的类是不是泛型了没有关系。
以下两个方法均不是泛型方法:
三.自定义泛型注意点:
- 在静态方法中不能使用类的泛型
- 异常类不能声明泛型
- 泛型方法可以声明为静态的。原因:泛型参数是在调用方法时确定的,并非在实例化时确定。
四.泛型在继承方面的体现:
类A是类B的父类,G<A> 和 G<B>二者不具有子父类关系,二者是并列关系。编译不会通过。
类A是类B的父类,A<G> 是 B<B> 的父类