🏝️

Lombokのご紹介

2024/12/17に公開

はじめに

こんにちは!
本日はJavaの便利なライブラリLombokを紹介します!
Project Lombok

LombokはJavaのライブラリーです。
アノテーションを付与することによって部分的にコードを自動で生成してくれるようになります。
自動生成はコンパイル時に行われます。

導入方法については割愛します。

Lombok

厳選してご紹介

それぞれのリンク先で詳しい解説があります。

val

アノテーションだと冒頭にいいましたが、こちらは型の代わりとして宣言できるものです
変数の前につけることによって、型を推論して不変で値を保持してくれます。

val name = "Lombok";

@NonNull

フィールドやメソッドの引数に使えて、nullチェックを行ってくれます。
nullの時にはぬるぽのエラーを出します。

public void printMessage(@NonNull String message) {
    System.out.println(message);
}
@NonNull
private String name;

@Getter / @Setter

フィールドとクラスに使えます。
getter, setterを作成してくれます。
基本的にクラスに付与する使い方が多いのではと思います。

@Getter
@Setter
public class TestClass {
    private long id;
    private String name;
}

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

コンストラクターを作成してくれます。
基本的に文字通りですが、
@NoArgsConstructor
引数なしのデフォルトコンストラクタを自動生成します。

@RequiredArgsConstructor
final フィールドまたは @NonNull が付いたフィールドを引数とするコンストラクタを自動生成します。要は絶対に必要なものを引数にもつコンストラクターを作成する。

@AllArgsConstructor
すべてのフィールドを引数とするコンストラクタを自動生成します。

下記のサンプルコードのage@RequiredArgsConstructorで生成されるコンストラクターの引数には入らない

@RequiredArgsConstructor
@AllArgsConstructor
public class TestClass {
    private final long id;
    private final String name;
    private int age; 
}

余談:Delombok

冒頭で述べたようにLombokによるコードの自動生成はコンパイル時に行われます。
開発をしている中でどのようなコードが自動生成されているか見たい時もあるかもしれません。
Lombokを使って書かれているものを実際のコードのように展開することをDelombokというようです。

Lombokアノテーションがついたクラスがあるとします。

クラスのところで右クリックして下記の順に選択します。
リファクタリングDelombokすべてのLombokアノテーション

出ました。
このように確認できます。

おわりに

Lombokの良さ伝わりましたでしょうか?
さらなる余談、もはやぼやきですがLombok featuresというページのアノテーションの下にそれぞれ一言が書かれているんです。
遊び心なんですかね〜。

Lombok使われていない方はこれを機に検討してみてくださると幸いです。

BABY JOB  テックブログ

Discussion