意外的界限

hla*_*nte 3 java generics compiler-errors

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

public class WindowedGame
        extends GameContainer<GameType extends Game<Graphics2D>> {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这个类扩展了类:

public abstract class GameContainer<GameType extends Game<?>> {
    ....
}
Run Code Online (Sandbox Code Playgroud)

你能建议我纠正或向我解释为什么我得到错误:

意外的界限

谢谢!

Era*_*ran 9

GameType是泛型类型参数名称,因此它不能在extends子句中.

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

public class WindowedGame<GameType extends Game<Graphics2D>>
        extends GameContainer<GameType> {
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果WindowedGame不应该是通用的,也许你的意思是将其定义为

public class WindowedGame
        extends GameContainer<Game<Graphics2D>> {
    ...
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,对于泛型类型参数名称的命名惯例通常是一个大写字母(T,E,等...).如果不是GameType你写的话,那就不那么容易混淆了T.

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

public abstract class GameContainer<T extends Game<?>> {
    ....
}
Run Code Online (Sandbox Code Playgroud)