Java Entity Getter/Setterの記載が面倒なのでLombokを使おう

JavaのEntityクラスを書いていて、フィールドが増えるたびにGetter/Setterを書き直すのが面倒だなと思い解決方法を調査してみました。今までeclipseのショートカットでGetter/Setterを記載していて、これはこれで便利なのですがそれでもやはり面倒です。

調査したところ、Lombokというのが良さそうです。LombokはEntityクラスにアノテーションを付けることでGetter/Setterを自動生成してくれます。

さっそくLombok公式サイトを見てインストール&確認。

LombokはPC端末にダウンロードした後、IDEに認識させる必要があります。とはいえ、インストーラがあるので簡単です。PC端末にダウンロードされ無事にIDEに認識されているか確認するには、上記サイトにあるようにeclipseのiniファイルやlombok.jarがIDE構成ディレクトリに生成されているところを見ます。

実際にEntityクラスに@Dataアノテーションを付けて動作確認してみてください。次のように記載することが出来ます。

@Data
public class SampleInfo {
  private Integer id;
  private Integer old;
  private String name;
}

呼び出す側は次のように書きます。こちらはLombokを使っても使わなくても同じですね。

SampleInfo sampleInfo = new SampleInfo();
Integer id = sampleInfo.getId();
Integer old = sampleInfo.getOld();
String name = sampleInfo.getName();

Getter/Setterを記載しなくて使用できるのは便利ですね。記載されていないのに実装されていることになっていることが気持ち悪くてLombokを嫌う人もいるようですが、私はソースコードが簡潔になるので好きです。

最近のPleades (Eclipse 2019-09) では最初からLombokが同梱されています。ですので、上記Pleadesを使用すればダウンロードおよびIDEに認識させる作業は不要です。しかも、Pleades (Eclipse 2019-09) にはSTSも同梱されています。とても便利です。

※2019.11.09 追記

オブジェクト指向の勉強をしていて、Setter/Getterは使わないほうが良いのかもしれないと思い始めています。こちらの本、おススメです。

現場で役立つシステム設計の原則

上記で理論を学んだら、次の本の5章オブジェクト指向エクササイズでトレーニングしてみると良いようです。

ThoughtWorksアンソロジー

私はまだオブジェクト指向エクササイズをやっていなく、良いらしいという情報を仕入れただけなのでこれからやってみようと思います。勉強するほどに勉強するべきことが増えて、面白いですね!