このクラスでは、常に false を返す equlas
メソッドを定義しています。
これは、オブジェクトがそれ自身と等価ではないことを意味していて、このクラスの有用な Map や Set を作成できません。
より根本的に、equals
メソッドの要件の一つである反射性を満たしていないことになります。
おそらく意図されたことは、オブジェクトはそれ自身と等価であるというオブジェクト同一性です。
これは Object
クラスから継承される振る舞いです。
異なるスーパークラスから継承される equals
メソッドをオーバーライドする必要があるなら以下のようなコードが使えます。
public boolean equals(Object o) { return this == o; }