黑马程序员技术交流社区

标题: 泛型的问题,看不明白 哎 [打印本页]

作者: 刘永川    时间: 2016-9-16 21:12
标题: 泛型的问题,看不明白 哎
给出以下代码,请指出其中的问题,并说明原因
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();错误,泛型类型在使用前,类型是不确定的,不能用来创建对象。

               
                看答案 没有看懂  这两个错误的原因
作者: somnus-sir    时间: 2016-9-16 21:59
这是一个Test类,有三个泛型X,Y,Z,其中X extends Number.
X,Y,Z都是未确定的类型。
在这个Test类被使用的时候才会传入相应的类型。如int,boolean等
还没传入就不能确定X,Y,Z类型,就没法使用。

静态修饰的变量,随类的加载而加载,没有传入类型(确定类型)就要加载,不能确定加载什么类型,错误

Z z = new Z();  要创建对象,此时类Test还没传入类型,不能确定Z的类型,无法使用。

//说的有点啰嗦,大概就这个意思





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2