【问题标题】:Unexpected bound意外的界限
【发布时间】:2016-12-28 07:36:49
【问题描述】:

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

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

这个类扩展了这个类:

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

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

意外的界限

谢谢!

【问题讨论】:

  • 您从代码中删除了所有相关内容。给我们更多的背景信息。
  • @rekire 他发布了回答这个问题所需的所有内容。

标签: java generics compiler-errors


【解决方案1】:

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

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

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

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

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

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

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

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

【讨论】:

  • "GameType是泛型类型参数名,所以不能在extends子句中。"你能澄清一下吗?你的意思是这里GameType的用法不对吗:GameContainer>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
相关资源
最近更新 更多