簡體   English   中英

我可以只使用關鍵字段來檢查等號嗎? 我可以通過子類使用equals嗎?

[英]Can I use only the key field to check equals? And can I use equals through subclasses?

我有一個帶有一些字段的類播放器:

String name;
Point position;
Action action;

'name'字段是一個關鍵字,不能有2個同名的玩家。 所以在我看來,如果'name'(可能被忽略)是相同的,它們是相等的。 所以我只使用String.equalsIgnoreCase(String),還是檢查其他字段?

1)我應該檢查除了播放器的equals方法中的名稱字段嗎?

2)如果其他字段不相同,我應該在equals方法中拋出錯誤嗎?

3)並且檢查一個字段僅用於子類是明智的,因為即使在子類中使用相同的名稱,也表示相同的播放器,或者我應該選擇另一種方法來比較它? 例:

class MovingPlayer extends Player{
    Point destination;

因此'name'字段仍然是鍵(類似於子類間鍵)。

謝謝,Tjen

  1. 您應該問自己一個問題 - 您的應用程序中是否可以存在具有相同名稱屬性和兩個不同位置屬性的兩個對象? 如果這是真的,那么您應該實現equals方法以使用所有相關字段。

  2. 你不會在equals方法中拋出錯誤。 你返回true或false。

  3. 您的子類可以覆蓋equals方法。 在該重寫方法中,您可以檢查superclas equals,並且只有它們相等時,才會繼續進行其他檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM