格式:
for(元素的数据类型 变量 : Collection集合or数组){
}
增强for循环必须有被遍历的目标。目标只能是Collection或者是数组。,如果要对数组元素进行操作,使用普通for。
泛型:
定义格式:修饰符 class 类名<代表泛型的变量> { }
例如,ArrayList<Integer> list = new ArrayList<Integer>();
此时,变量E的值就是Integer类型
含有泛型的接口:
定义格式:修饰符 interface接口名<代表泛型的变量> { }
例如,API中的Iterator迭代器接口
public interface Iterator<E> {
public abstract E next();
}
使用泛型的好处:
将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
避免了类型强转的麻烦。
泛型通配符<?>,当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用
限定泛型的上限:
格式:? extends E
例如,泛型限定为:? extends Person
则 ? 代表接收Person类型或者Person子类型的元素
限定泛型的下限:
格式:? super E
例如,泛型限定为:? super Student
则 ? 代表接收Student类型或者Student父类型的元素
浙公网安备 33010602011771号