Lombokを使ってJavaBeansコードをシンプルに書く方法

Lombok(ロンボック)を使ってJavaBeansコードをシンプルに書く方法です。

Lombokを使ってJavaBeansコードをシンプルに書く方法

Lombokとは、JavaBeans コードを書く際に、getter・setterメソッドをコード上に直接書かかなくて済みます。アノテーションを付けるだけで、 getter, setter, toString, equals などの繰り返しコードを自動生成してくれます。ソースコードが宣言的になることで、可読性が高まるのが特徴です。

ここでは Lombok(ロンボック)を使ってJavaBeansコードをシンプルに書く方法 を紹介します。


LombokをEclipseへインストール

公式サイトから lombok.jar をダウンロードします。

Project Lombok

ダウンロードしたファイルを実行します。

lombok.jarをダウンロードして実行

Specify location から、インストールする eclipse を選択し、Install / Update ボタンを押下します。

下図のメッセージが出れば、インストールは終了です。

LombokのEclipseへのインストール終了

Eclipse を再起動しましょう。

Lombokを使ってみる

Lombokを使うには、pom.xml に下記を追記します。


<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
</dependency>

次に JavaBean を用意して、クラスに Data アノテーションを付与します。

こちらのページを参考にサンプルアプリを作ってください。既にSpring Bootなどのサンプルアプリがある場合は、読み飛ばして結構です。


package springbootapp;

import lombok.Data;

@Data
public class LombokBean {
  private String id;
  private String name;
}

次にテスト用クラスを作成します。


package springbootapp;

public class LombokTest {

  public static void main(String[] args) {
    LombokBean bean = new LombokBean();
    bean.setId("saka-en");
    bean.setName("サカエン");

    System.out.println(bean.getId());
    System.out.println(bean.getName());
  }
}

この時点でおわかりだと思いますが、JavaBean クラスには setter も getter も用意していないのにメソッドが使えています。これは楽チン^^

アノテーション説明
Data対象クラスのメンバの getter/setter が自動生成され、toString, equals, hashCode もオーバーライドされる。
Value対象クラスの final化、メンバの final化、引数付きコンストラクタ、メンバの getter が自動生成され、toString, equals, hashCode もオーバーライドされる。setter は利用できない。
Getter対象クラスやメンバに getter が自動生成される。
Setter対象クラスやメンバに setter が自動生成される。
Builder対象クラスを生成するための Builderクラス が自動生成される。
NonNull対象クラスのメンバやメソッドの引数に指定することで null チェックが自動追加される。setter に null を設定すると NullPointerException がスローされる。
Accessorsfluent=trueの指定をすると、メンバのアクセッサの名称がメンバ名と同一になる。Data アノテーションなどと一緒にクラスへ付与する。
ToStringtoString がオーバーライドされ、各メンバの値が表示されるようになる。exclude で対象のメンバ名を指定すると、出力対象から除外することができる。
Synchronized対象クラスのメンバに指定すると synchronized ブロックが生成される。

上の表は、私がよく使うものだけ抜粋しています。詳しくは Lombok公式サイト を確認ください。

Lombok feature overview

まとめ

Lombok(ロンボック)を使ってJavaBeansコードをシンプルに書く方法を紹介しました。

正直、getter / setter ってメンドクサイですよねー。Eclipse の機能に「getter および setter の生成」という機能がありますが、これもいちいちメンドクサイと思っていたところです。おまけにソースも長くなって可読性が悪いとあって、正直好きじゃありませんでした。

アノテーションを一行書くだけで適切にコード生成してくれるのは魅力的ですね。

皆さんも使ってみてください。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。