java - 意外绑定(bind)

标签 java generics compiler-errors

我正在尝试编译这个新类:

public class WindowedGame
        extends GameContainer<GameType extends Game<Graphics2D>> {
    ...
}

这个类扩展类:

public abstract class GameContainer<GameType extends Game<?>> {
    ....
}

您能否建议我更正或向我解释为什么会出现错误:

Unexpected bounds

谢谢!

最佳答案

GameType是泛型类型参数名,不能出现在extends子句中。

如果 WindowedGame 应该是通用的,将其定义为

public class WindowedGame<GameType extends Game<Graphics2D>>
        extends GameContainer<GameType> {
    ...
}

如果 WindowedGame 不应该是通用的,也许您打算将其定义为

public class WindowedGame
        extends GameContainer<Game<Graphics2D>> {
    ...
}

顺便说一句,泛型类型参数名称的命名约定通常是单个大写字符(TE 等...)。如果将 GameType 写成 T 就不会那么困惑了。

public class WindowedGame<T extends Game<Graphics2D>>
        extends GameContainer<T> {
    ...
}

public abstract class GameContainer<T extends Game<?>> {
    ....
}

关于java - 意外绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41357479/

相关文章:

C++ 编译器错误 : ISO C++ forbids declaration of ‘set’ with no type

java - 在 Java 中执行类型转换时出现编译器错误

java - 查找RadioGroup时出现空指针异常

java - 在 Portlet For IBM 中上传带有响应的文件

java - 类中太多泛型类型是否意味着糟糕的设计?

ios - 在真实设备上使用 openCV 框架编译 iOS 应用程序时出错

java JFrame 设置大小

java - 为什么我的 List<Integer> 中的元素是字符类型?

java - scala 中的错误 : ambiguous reference to overloaded definition, ND4J

c++ - 类数据成员不可访问