Lombokのご紹介
はじめに
こんにちは!
本日は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 は、子育てを取り巻く社会のあり方を変え、「すべての人が子育てを楽しいと思える社会」の実現を目指すスタートアップ企業です。圧倒的なぬくもりと当事者意識をもって、こどもと向き合う時間、そして心のゆとりが生まれるサービスを創出します。baby-job.co.jp/
Discussion