読者です 読者をやめる 読者になる 読者になる

Web系開発メモ

Java, SpringBoot, JavaScript, CSS, HTML などの記事を書いています。

Java:Lombok の @Data でコード量削減

Java

Lombok は Java のライブラリで、getter/setter やコンストラクタなどのコードを自動的に生成してくれます。今回は、Lombok のアノテーション @Data を使って、コード量を削減する方法を書いてみます。

手順1. ビルドシステムの設定

Lombok への依存性を追加します。

1. Maven

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

2. Gradle

compile 'org.projectlombok:lombok:1.16.10'

3. ビルドシステムを使わない場合

Lombok 公式サイト から jar をダウンロードして、クラスパスに通します。

手順2. @Data を追加

getter/setter などを生成したいクラスに、アノテーションを付与します。

import lombok.Data;

@Data public class Greeting {
    private long id;
    private String content;
}

@Data は、getter/setter, equals(Object), canEqual(Object), hashCode(), toString(), コンストラクタを生成してくれます。EclipseGreeting クラスのアウトラインを見ると、コードが生成されていることを確認できます。

class-outline

@Data 以外にも色々なアノテーションがあるので、必要に応じて使い分けると良さそうです。

補足1. Eclipse で使う場合

IDE で使う場合、Lombok のインストールが必要みたいです。インストール方法は、Eclipse:lombokインストール手順 を参照して頂けると嬉しいです。

補足2. JPA のエンティティ

JPA のエンティティには、デフォルトコンストラクタが必要です。Lombok のアノテーションを使う場合は、デフォルトコンストラクタが生成されているか確認したほうが良さそうです。

@Data と引数有りのコンストラクタを定義すると、デフォルトコンストラクタが生成されなくなるので要注意です。@Data だけなら問題なさそうです。