class a{}
class b extends a{}
class c <? extends b> extends b{}
public class d {
public static void main(String[] args) {
c<c> n = new c<c>();
}
}我正在读《南华早报》。我不明白class<?>和class<? extends anything>.....if泛型类的概念,这意味着我们可以传递任何扩展“任何东西”的类,那么为什么上面的代码不起作用呢?
请解释一下,这很让人困惑
问候
发布于 2014-02-11 21:48:22
用一个类型参数声明一个类而不引用该参数是没有意义的。因此,不能预见声明这样的类。必须为类型参数指定一个名称。
变化
class c <? extends b> extends b{}至
class c <T extends b> extends b{}在类c中,您现在可以引用类型参数T,例如声明方法和变量。
发布于 2014-02-11 21:49:13
您没有给出确切的错误消息,但我猜这是因为您在定义类型参数时不能使用通配符。
尝试:
class c <T extends b> extends b{}注意:按照惯例,类名以大写字母开头,因此请使用:
class C <T extends B> extends B{}https://stackoverflow.com/questions/21703561
复制相似问题