泛型
这是我在总结以前所学的java基础知识时所进行的汇总。大家看看有什么不对的地方,请各位大神指教!!!
一、泛型示例:
class 类名称<T>{}
interface 接口<T>{ }
public <T> void 方法 (T one){ }
注意:1.标识符T表示形式上的类型,使用时传入实参
2. 在类体内可以根据需要将T作为成员类型,包括返回值类型
作用:解决类型转换异常问题、提高代码重用性
二、泛型定义
泛型:通过参数化类型提高代码重用性,并在编译期强制进行类型检查的机制。
泛型包括:泛型类、泛型接口、泛型方法
三、泛型类,泛型接口
子类继承泛型类:
注意事项:若父类声明了类型形参T,则子类的类型形参列表中也必须含有T
省略类型实参时,默认为Object类型
四、泛型方法,泛型规则
泛型方法可用于:提高代码重用性,静态方法传入泛型参数(必须使用泛型方法)
泛型规则:
1.类型实参只能是引用数据类型,不能是基本数据类型。
2.同一种泛型可以有多个版本,不同版本需考虑兼容性。
3.泛型参数可以有多个,以英文逗号割开。
4.类型实参可以使用?通配符。
5.泛型可以使用extends、super限定边界。
五、通配符
通配符是代替一个或多个真正字符的特殊字符
外延:shell通配符、正则表达式通配符、sql通配符、泛型通配符
泛型通配符:用来表示任意类型实参的通配符
外延:无边界通配符、固定上边界通配符、固定下边界通配符
?:无边界通配符,默认匹配Object类,即可以匹配任意引用类型的对象
<? extends 上界类>:使用extends向上限定边界,类型可以是上界类自身或其子类。
<? super 下界类>:使用super向下限定边界, 类型实参可以是下界类自身或其超类(父类)。
常用的通配符:

注意:泛型类型形参可以限定上边界,不能限定下边界,否则会报语法错误
| 应用场景 | 范围限定 | |
| ? |
一种通配符, 在泛型中传入类型实参时使用 |
无边界 固定上边界 固定下边界 |
| T |
一种表示泛型参数的标识符, 在定义泛型类、泛型接口、泛型方法时作为类型形参 |
无边界 固定上边界 |
泛型的生效期:


浙公网安备 33010602011771号