我有一個應用程序,用戶可以在其中玩很多類型的遊戲。每場比賽延伸了Game
課程,其中有各種與遊戲相關的內容。每個遊戲還有一個相關的用戶類別,它擴展了User
(包含電子郵件,用戶名等),如ChessUser
和ScrabbleUser
,其中包含有關遊戲的統計信息和其他用戶信息。指定子類中的集合類型
在每個Game
類中,我需要一個當前正在玩遊戲的所有用戶的列表。因爲所有的遊戲都需要這個列表,我想把它放在User
類中,但是它包含了玩遊戲的用戶類型(ChessGame將包含一個ChessUsers列表),我不能在沒有在檢索時轉換值寧可不做。有沒有方法做到這一點,而無需投射檢索值?
一些示例代碼:
public class Game {
private List<Player> players;
public Player getPlayer(int index) {
return players.get(index);
}
}
public class Player {
private String username;
private String email;
}
public class ChessGame extends Game {
// getPlayer now needs to return a ChessPlayer, hopefully without casting
}
public class ChessPlayer extends Player {
private int checkmates;
}
您正在尋找的是[泛型](http://docs.oracle.com/javase/tutorial/java/generics/index.html)。 –
檢查'getPlayer'。返回類型不是void,而是Player。 –