Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
泛型方法
下面是定义泛型方法的规则:
- 所有范型方法声明都有一个类型参数申明部分(由尖括号分割)该类型参数声明部分在方法返回类型的前面
- 每一个参数声明部分包含一个或者多个类型参数,参数间用逗号隔开。一个泛型参数,也称为一个类型变量,是用于指定一个泛型名称的标识符。
- 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符
- 泛型的方法体和其他方法一样,注意类型参数只能代表引用型类型,不可以是原始类型
泛型标记符
- E (在集合中使用)
- T(在类中使用)
- K(键)
- V(值)
- N(数值类型)
- ?(不确定的java类型
实 例 \color{#FF0000}{实例} 实例
package dataStructure;
/**
* Created by jdx on 2021/12/17 下午5:19
*/
public class generic {
/**
* @return void
* @description 泛型方法
* @author create by JDX
* @date 2021/12/17 下午5:19
*/
public static <E> void print(E[] array) {
/*输出数组元素*/
for (E elements : array) {
/*按照格式输出*/
System.out.printf("%s ", elements);
}
System.out.println();
}
public static void main(String[] args) {
/*创建不同的数组*/
Integer[] integers = {1, 2, 3, 4, 5, 6, 7};
Double[] doubles = {1.2, 1.3, 1.34, 1.5};
Character[] characters = {'W', 'O', 'R', 'D'};
System.out.println("整数类型元素为:");
print(integers);
System.out.println("\n双精度类型元素为:");
print(doubles);
System.out.println("\n字符类型元素为:");
print(characters);
}
}
输出结果为:
整数类型元素为:
1 2 3 4 5 6 7
双精度类型元素为:
1.2 1.3 1.34 1.5
字符类型元素为:
W O R D
其实不难看出,所谓的泛型其实就好比一个装有不明液体的瓶子写上了标签,方便我们去调用或者使用。