语言的泛型
背景
在使用强类型语言编写代码时,经常会需要定义一些可变的部分,以提高代码的可重用性,(根据类结构树)使代码具有某一层级及以上或以下的通用性。为达到这个目标,同时,使这件事做的更安全和规范,开发语言引入泛型的特性,既参数化类型。各种程序设计语言和其编译器、运行环境对泛型的支持会有不一样。
JAVA泛型
- 泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
- 同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
- 泛型的类型参数可以有多个。
- 泛型的参数类型可以使用extends语句,例如<T extends superclass>。习惯上称为“有界类型”。
- 泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName("java.lang.String");