自前のPOJOクラスをHashSetで扱いたい

自前のPOJOクラスをHashSetの値として重複を除きつつコレクションとして管理したい。

HashSetで正しく扱うためには、モデルクラスのequals()メソッドとhashCode()メソッドを実装する必要がある。
自前で実装してもよいが、apche commonsライブラリを使用すれば以下のように簡単に実装ができる。

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

  @Override
  public boolean equals(Object obj) {
    return EqualsBuilder.reflectionEquals(this, obj);
  }

  @Override
  public int hashCode() {
    return HashCodeBuilder.reflectionHashCode(this);
  }

参考(https://tech.pjin.jp/blog/2017/08/02/java-apache-commons-hashcodebuilder-%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0/)