给出以下代码,请指出其中的问题,并说明原因
class Test<X extends Number, Y, Z> {
private X x;
private static Y y;
public X function(){
return x;
}
public void method() {
Z z = new Z();
}
}
答案:编译错误
private static Y y;错误,静态修饰的变量,在创建对象前存在了,此时,泛型类型还没有确定,所以不能使用泛型来表示。
Z z = new Z();错误,泛型类型在使用前,类型是不确定的,不能用来创建对象。