各位,
请看如下代码,public class Test01 {
public static void test(Child<Object, Object> c2){
}
public static void test1(Child<?, ?> a){
}
public static void main(String[] args) {
Child c1= new Child(); //相当于Object,但不是Object; 擦出不会进行类型检查
Child<Integer, Integer> c2 = new Child<Integer, Integer>();
test(c1);
test1(c1);
test(c2);
test1(c2);
}
}public abstract class Father <T,T1> {
T name;
public abstract <T1> void test(T1 t);}
class Child<T1,T> extends Father<T,T1> {
T name;
public <T1> void test(T1 t){
System.out.println();
}
}
其中 test(c2)编译时报错,笔者愚昧的以为这里是 父类引用指向子类对象,是不是泛型里有特殊的情况?
请看如下代码,public class Test01 {
public static void test(Child<Object, Object> c2){
}
public static void test1(Child<?, ?> a){
}
public static void main(String[] args) {
Child c1= new Child(); //相当于Object,但不是Object; 擦出不会进行类型检查
Child<Integer, Integer> c2 = new Child<Integer, Integer>();
test(c1);
test1(c1);
test(c2);
test1(c2);
}
}public abstract class Father <T,T1> {
T name;
public abstract <T1> void test(T1 t);}
class Child<T1,T> extends Father<T,T1> {
T name;
public <T1> void test(T1 t){
System.out.println();
}
}
其中 test(c2)编译时报错,笔者愚昧的以为这里是 父类引用指向子类对象,是不是泛型里有特殊的情况?
HashMap<Object,Object> map = new HashMap<Integer,Integer>();//不存在继承关系,编译失败