3
我有一個一流的球員,其中一些字段:我可以只使用關鍵字段來檢查等於嗎?我可以通過子類使用等於嗎?
String name;
Point position;
Action action;
「名稱」字段是那種關鍵的,不能有2名玩家使用相同的名稱。所以在我看來,他們是平等的,如果'名稱'(可能被忽略)是相同的。那麼,我只使用String.equalsIgnoreCase(String)還是檢查其他字段?
1)我是否應該比球員的equals方法名稱字段嗎?
2)我應該拋出一個錯誤的equals方法,如果其他字段是不一樣的?
3)又是明智檢查一個字段只針對子類,因爲即使在子類相同的名稱,代表同樣的球員,或者我應該選擇這種比較的另一種方法?例如:
class MovingPlayer extends Player{
Point destination;
所以'name'字段仍然是關鍵字(類似於子類間鍵)。
由於提前,Tjen
1)他們可以不存在,或者不應該進行比較(如果被複制畫,而其他被另一個線程編輯,但該副本戰平後刪除了它可以存在),但如果是這樣的話這個是我的代碼中的錯誤,因此問題2. –
3)這個想法是,子類可以包含一個像點目標的播放器的額外信息;或者其他的東西。但是又是相同的「玩家」(不是真正的球員,但player_sub) –
@NelttjeN - equals方法不能拋出異常。你不被允許。它重寫Object equals,因此您的方法簽名必須匹配。 至於你的第二點,如果是這樣的話,那麼你不必重寫子類中的equals方法。 – Kal