格式:

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父类型的元素

posted on 2020-10-16 16:28  心灯不夜  阅读(93)  评论(0)    收藏  举报