下面的a方法相当于重复定义,报错
/ public void a(List<Object> list){
//
// }
// public void a(List<String> list){
//
// }
// public void a(List<Integer> list){
//
// }
2引入通配符
public static void main(String[] args) {
List<Object> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
List<Integer> list3 = new ArrayList<>();
List<?> list = null;
list=list1;
list=list2;
list=list3;
}
发现:A和B是子类父类的关系,G<A>和G<B>不存在子类父类关系,是并列的
使用通配符
package com.wangg;
?
import com.sun.org.apache.xerces.internal.xs.datatypes.ObjectList;
import sun.awt.util.IdentityArrayList;
?
import java.util.ArrayList;
import java.util.List;
?
public class Dome06 {
// public void a(List<Object> list){
//
// }
// public void a(List<String> list){
//
// }
// public void a(List<Integer> list){
//
// }
public void a(List<?> list){
//内部遍历的时候用Object类型,不用?
for (Object b:list){
System.out.println(b);
}
?
}
}
class Dome1q{
public static void main(String[] args) {
Dome06 t = new Dome06();
t.a(new ArrayList<ObjectList>());
t.a(new ArrayList<String>());
t.a(new ArrayList<IdentityArrayList>());
?
}
}