Java基础笔记25-泛型
-
泛型
-
关键符号: <数据类型>
-
限制类型
- <指定数据类型>
- 指定数据类型可以是引用数据类型
- 限制集合中所能存储的数据类型,不用强制类型转换,将错误提前到了编译时期
-
不限制类型
-
<数据类型>
-
不限制数据类型的尖括号内可以写
-
所有数据类型的超类 Object
-
通配符 ? (英文问号),
-
26个英文字母大写,通常是一个字母,也可多个
- 但是,系统本身是无法直接识别英语作为一个类型,因此,就需要在使用之前先指定某个字母作为类型
- 指定方式:
- 在类上指定
- 该字母可以作为一个类型在整个类中使用
- 在方法上指定
- 该字母可以在该方法中作为一个类型使用
- 在类上指定
- 注意:自定义泛型不能用在静态变量或方法上
-
-
-
-
使用方式:
/**
* 1、将错误从运行时期提前到了编译时期
* 2、不再需要进行强制类型转换
* JDK1.7要求子类的泛型需要显示的写出来,1.8之后可以不写
*/
public static void method() {
//泛型指定类型之后要求改集合中只能存放指定类型的数据
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("haha");
Iterator<String> it = list.iterator();
while(it.hasNext()) {
String str = it.next();
System.out.println(str.length());
}
}