首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用泛型java声明类

用泛型java声明类
EN

Stack Overflow用户
提问于 2014-02-11 21:43:25
回答 2查看 74关注 0票数 0
代码语言:javascript
复制
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泛型类的概念,这意味着我们可以传递任何扩展“任何东西”的类,那么为什么上面的代码不起作用呢?

请解释一下,这很让人困惑

问候

EN

回答 2

Stack Overflow用户

发布于 2014-02-11 21:48:22

用一个类型参数声明一个类而不引用该参数是没有意义的。因此,不能预见声明这样的类。必须为类型参数指定一个名称。

变化

代码语言:javascript
复制
class c <? extends b> extends b{}

代码语言:javascript
复制
class c <T extends b> extends b{}

在类c中,您现在可以引用类型参数T,例如声明方法和变量。

票数 2
EN

Stack Overflow用户

发布于 2014-02-11 21:49:13

您没有给出确切的错误消息,但我猜这是因为您在定义类型参数时不能使用通配符。

尝试:

代码语言:javascript
复制
class c <T extends b> extends b{}

注意:按照惯例,类名以大写字母开头,因此请使用:

代码语言:javascript
复制
class C <T extends B> extends B{}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21703561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档