equals()
私が持っているクラスのカスタムメソッドを実装したいBoard
. このメソッドは、 として定義された各ボードの配列を比較し、private int[] board
配列が等しい場合は true を返し、そうでない場合は false を返します。等価性のテストにはいくつかの「落とし穴」があることを知っているので、等価性を真にテストするには、次のコードが最適で十分であるかどうか疑問に思っていました。
public boolean equals(Object y) {
if (this.getClass() != y.getClass()) return false; //must be same class -- duh
Board that = (Board) y; //y cast as Board
int[] thisBoardCopy = this.getBoard(); //copy of current board
int[] thatBoardCopy = that.getBoard(); //copy of y's board
return Arrays.equals(thisBoardCopy, thatBoardCopy);
}