java泛型中<?>和<T>有什么区别?
public static void printColl(ArrayList<?> al){ T自定义泛型和?通配符泛型 |
泛型三种: [1]ArrayList<T> al=new ArrayList<T>();指定集合元素只能是T类型 [2]ArrayList<?> al=new ArrayList<?>();集合元素可以是任意类型,这种没有意义,一般是方法中,只是为了说明用法 [3]ArrayList<? extends E> al=new ArrayList<? extends E>(); 泛型的限定: ? extends E:接收E类型或者E的子类型。 ?super E:接收E类型或者E的父类型。 |