2016-12-28 88 views
1

我試圖編譯這個新類:意外的束縛

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

該類擴展類:

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

您能否給我建議的修正或爲什麼我的錯誤給我解釋一下:

意外的界限

謝謝!

+0

您刪除了與代碼相關的所有內容。給我們更多的背景。 – rekire

+3

@rekire他發佈了一切需要回答這個問題。 – Tom

回答

4

GameType是通用類型參數名稱,所以它不能在extends子句中。

如果WindowedGame應該是通用的,把它定義爲

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

如果WindowedGame不應該是通用的,也許你的意思是把它定義爲

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

BTW,通用型的命名規則參數名稱通常是單個大寫字符(TE等)。如果不是GameType,你會寫T,這樣會更容易混淆。

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

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

「GameType是泛型類型參數名稱,所以它不能位於extends子句中。」 你能澄清一下嗎? 您的意思是說這裏使用的GameType是錯誤的: GameContainer > – yusif