Lombokを使ってJavaBeansコードをシンプルに書く方法 ホームページ制作 | 墨田区

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

LINEで送る
Pocket

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

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

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




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


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を使ってWebアプリを作る方法
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

まとめ

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

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

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

おつかれさまでした。

LINEで送る
Pocket

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

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL