1. 泛型
Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。
泛型的本质就是参数化类型(类型参数化),也就是所操作的数据类型被指定为一个参数。
private static void m2() { ArrayList<String> list=new ArrayList<>(); list.add("333"); list.add("string"); //list.add(88); 编译期检查 for (String s : list) { System.out.println(s); //减少了数据类型转换 } } /** * 未使用泛型之前 */ private static void m1() { ArrayList objects = new ArrayList(); objects.add("111"); objects.add(88); objects.add(true); for (Object object : objects) { System.out.println(object); } }
2. 泛型的优点
- 1.类型安全,编译期检查
- 2.消除了强制类型的转换、提高效率
二、泛型的使用
1. 泛型的注意事项
- 泛型类,如果没有指定具体的数据类型,此时,操作类型是Object
- 泛型的类型参数只能是类类型,不能是基本数据类型
- 泛型类型在逻辑上可以看成是多个不同的类型,但实际上都是相同类型
- 泛型的使用,类型参数化,泛型标识,由外部使用类来指定
- 可以结合后面的泛型擦除理解,泛型擦除之后 Generic < String > 和Generic< Integer >都是Generic类。
2. 泛型的语法
泛型类
T:type
E:element
K: key
V :value
?:表示不确定的java类型
一般是单个大写字母