私はJava初心者ですので、この方にご負担ください。価値の平等をチェックするには?
Point a = new Point(1, 1);
Point b = new Point(1, 1);
私はこれらの2つの点が同じ場所にあるかどうかを確認したい:
class Point {
public int x;
public int y;
public Point (int x, int y) {
this.x = x;
this.y = y;
}
}
が、私は2つのインスタンスを作成します。
私はクラスを持っています。明らかに、if (a == b) { ... }
は、これが "オブジェクトと等しいと思われるため動作しません"私が望むものではない種類のテスト。
私はif ((a.x == b.x) && (a.y == b.y)) { ... }
を行うことができますが、その解決策は気分が良くありません。
どのように2つのPointオブジェクトを使用して、等価であるかどうかをエレガントな方法で調べるにはどうすればよいですか?
class Point {
...
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Point)) return false;
Point rhs = (Point)obj;
return x == rhs.x && y == rhs.y;
}
は、その後、あなたがa.equals(b)
を使用することができます。
JDKに既にあるコードを読むのがよいでしょう。 –