Lombok は Java 向けのライブラリであり、アノテーションを用いて getter/setter や toString、equals、hashCode、コンストラクタなどの定型コードを自動生成する。これにより、コードの冗長性を減らし、開発効率を向上させることが可能となる。
プロジェクトへの導入手順
Maven での依存関係追加
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
IDE へのプラグインインストール
IntelliJ IDEA や Eclipse などの IDE では、Lombok プラグインをインストールし、再起動することでアノテーション処理が有効になる。
主なアノテーションとその用途
@Getter / @Setter
フィールドに対するアクセサメソッドを自動生成する。
import lombok.Getter;
import lombok.Setter;
public class User {
@Getter @Setter private String username;
@Getter @Setter private int score;
}
@FieldNameConstants
フィールド名を文字列として安全に参照できる定数を生成する。
import lombok.experimental.FieldNameConstants;
@FieldNameConstants
public class User {
private String username;
private int score;
}
使用例:
String field = User.$FieldNameConstants.username; // "username"
@ToString
toString() メソッドを自動実装する。
import lombok.ToString;
@ToString
public class User {
private String username;
private int score;
}
@EqualsAndHashCode
equals() および hashCode() を自動生成する。
import lombok.EqualsAndHashCode;
@EqualsAndHashCode
public class User {
private String username;
private int score;
}
@NoArgsConstructor
引数なしのコンストラクタを生成する。
import lombok.NoArgsConstructor;
@NoArgsConstructor
public class User {
private String username;
private int score;
}
@AllArgsConstructor
すべてのフィールドを引数にとるコンストラクタを生成する。
import lombok.AllArgsConstructor;
@AllArgsConstructor
public class User {
private String username;
private int score;
}
@RequiredArgsConstructor
final または @NonNull が付与されたフィールドのみを対象にコンストラクタを生成する。
import lombok.RequiredArgsConstructor;
import lombok.NonNull;
@RequiredArgsConstructor
public class Service {
private final Database db;
@NonNull private Logger logger;
}