我可以在Java中使用嵌套泛型吗?

Dou*_*ell 12 java generics

我试图做一些像:


public class MyClass <A, B, C <A, B> > {
  ...
}
Run Code Online (Sandbox Code Playgroud)

但Eclipse突出显示"B",并表示"意外的,预期的延伸".是什么赋予了?嵌套的泛型是不允许的?

Boh*_*ian 8

这是因为您没有定义C为本身使用2个类型参数键入的类型.
尝试这样的事情:

public class MyClass <A, B, C extends Map<A, B>> {
    // This compiles
}
Run Code Online (Sandbox Code Playgroud)

  • @Doug:如果C没有常见的超类型,那你怎么知道它需要参数化?如果你只是意味着具有相同的父类,那么如果`extends`约束在接口上,那实际上并不是必需的,因为Java支持多个接口继承. (5认同)