2023年8月29日

Javaの便利ライブラリ「lombok」


Content

はじめに

Lombokの存在はすでに世間一般に浸透しています。
しかし、レガシーなシステムの保守開発をしている現場だと導入されていない場合があります。
例えば、私が経験した現場ではLombokを使用していないソースが多くありました。
そのため、自前でgetter/setterを記述しているため冗長なソースコードが大量生産されていました。
そこで、実務未経験の方や若手エンジニアの方のためにLombokのことを紹介したいと思います。
世界から自前のgetter/setterを撲滅しましょう。

Lombokとは

  • Javaの便利ライブラリで、ロンボック、ロンボクと読みます。
  • アノテーションを付与するだけでgetter、setter、toStringメソッド等をコンパイル時に自動生成してくれます。
  • つまりボイラープレートコードを排除することができます。

 

ボイラープレートコードとは、言語仕様上省くことができない定型的なコードのことである。 ボイラープレートコードは本質的なロジックでないため、アプリケーションを実装する上で冗長なコードとなる。

Lombokの使い方

JavaにはDTO、Bean、POJO、Model、Form等と呼ばれる、下記のようなprivateフィールドとgetter/setterのみを記述するクラスがあります。

public class HogeDTO {
    private String hoge;
    private int fuga;

    public String getHoge() {
        return hoge;
    }

    public void setHoge(String hoge) {
        this.hoge = hoge;
    }

    public int getFuga() {
        return fuga;
    }

    public void setFuga(int fuga) {
        this.fuga = fuga;
    }
}

フィールド毎にgetter/setterを書かなければなりません。そのため単純だけどコード量が多くなってしまいがちなクラス。
Lombokを利用すると、getter/setterを書く必要がありません。
クラス宣言の前にLombokの@Dataアノテーションをつけるだけで全フィールドのgetter/setterが自動生成されます。

@Data
public class HogeDTO {
    private String hoge;
    private int fuga;
}

一部のフィールドのみにgetter/setterを作りたい場合は@Getter/@Setterアノテーションを対象のフィールドにつければOKです。

public class HogeDTO {
    @Getter @Setter
    private String hoge;
    private int fuga;
}

このようにLombokを利用するとgetter/setterを書かなくて済むので、コード量が激減します。

Lombokの良い点

Lombokを使用するメリットをまとめました。使わない理由がないですね。

  • DTOの作成が簡単になる。
  • コード量が減る。
  • フィールド名や型の修正に伴うgetter/setter修正の手間がかからない。
  • フィールド追加に伴うgetter/setter追加の手間がかからない。
  • 参照する側の変更は必要なく、そのままgetter/setterを利用できる。
  • インストール方法

    LombokをIDEで使用するためにはインストールが必要です。
    そこで今回はEclipseでのインストール手順を紹介します。
    Eclipse以外を使ってる人はググってください。申し訳ございません。

    1. 公式ページからLombok.jarをダウンロードする。
    2. ダウンロードしたjarファイルをダブルクリックしてインストーラを開く。
    3. Specify locationをクリックし、eclipse.exe が存在するフォルダを選択する。
    4. Install / Updateをクリックする。

    Eclipseのスクショがコチラです。
    ソース上ではgetter/setterが記述されていませんが、コンパイル時にgetter/setterが自動生成されているため、アウトラインにはgetter/setterが表示されています。

     

    最後に

    レガシーなJavaの開発現場でのgetter/setter省略方法の紹介でした。
    Lombokには他にも様々な便利機能がありますが、今回は特に活用機会が多いgetter/setterを取り上げました。
    機会があればLombokの他の機能もいずれ紹介したいと思います。
    この記事をご覧いただいた方々も是非Lombokを有効活用してください。
    最後までお読みいただきありがとうございました。

     

    2023年8月29日 Javaの便利ライブラリ「lombok」

    Category 技術開発

    ご意見・ご相談・料金のお見積もりなど、
    お気軽にお問い合わせください。

    お問い合わせはこちら