JAVA 泛型初步认识
Java1.5增加了泛型的概念。泛型允许你抽象类型,最常见的例子就是容器类型,如集合类的层次。
List myIntList = new LinkedList(); // 1myIntList.add(new Integer(0)); // 2Integer x = (Integer) myIntList.iterator().next(); // 3必须进行类型转换,iterator()只会返回Object类型。
List<Integer> myIntList = new LinkedList<Integer>(); // 1’myIntList.add(new Integer(0)); //2’Integer x = myIntList.iterator().next(); // 3’,不必进行类型转换。
public interface List<E> {void add(E x);Iterator<E> iterator();}public interface Iterator<E> {E next();boolean hasNext();}void printCollection(Collection c) {Iterator i = c.iterator();for (k = 0; k < c.size(); k++) {System.out.println(i.next());}}利用泛型:void printCollection(Collection<Object> c) {for (Object e : c) {System.out.println(e);}}老版本可以接受任何类型的集合类作为参数,但是新版本的类型只能是Collection<Object>。void printCollection(Collection<?> c) {for (Object e : c) {System.out.println(e);}}