はじめに
JavaとSpringBootの学習を進める中で、Lombokの機能の内、@AllArgsConstructor
アノテーションと@NoArgsConstructor
について、「これは便利だな」と思い、メモに残しておきたいと思ったため、記事としてまとめていきます。
Lombokについて
まずLombokとは、Javaのプログラミングにおいて冗長なコードを削減し、開発効率を削減するためのライブラリです。
対応したアノテーションを付与することで、全てのフィールドに対してゲッターやセッターを自動で生成する、コンストラクタを自動で生成する、などをしてくれるため、コードの記述量が大幅に削減されます。
@〇〇ArgsConstructorについて
Lombokというライブラリに含まれるアノテーションのうち、@NoArgsConstructor
と@AllArgsConstructor
について紹介したいともいます。
@NoArgsConstructorアノテーション
@NoArgsConstructor
をクラスにつけることで、引数なしのコンストラクタを自動生成してくれます。デフォルトコンストラクタのことです。
- @NoArgsConstructorアノテーションを付与したクラス
import lombok.NoArgsConstructor;
@NoArgsConstructor
public class SampleClass1 {
private int number1;
private String name1;
}
- 実際の記述
public class SampleClass1 {
private int number1;
private String name1;
public SampleClass1() {
}
}
このようにデフォルトコンストラクタを自動で生成してくれます。
@AllArgsConstructorアノテーション
@AllArgsConstructor
アノテーションをつけることで、クラス内の全てのフィールドを引数に取るコンストラクタを自動生成してくれます。
- @AllArgsConstructorアノテーションを付与したクラス
import lombok.NoArgsConstructor;
@AllArgsConstructor
public class SampleClass2 {
private int number2;
private String name2;
}
- 実際の記述
public class SampleClass2 {
private int number2;
private String name2;
public SampleClass1(int number2, String name2) {
this.number2 = number2;
this.name2 = name2;
}
}
このように、全てのフィールドについてのコンストラクタを自動生成してくれます。
さいごに
ほかにも@RequiredArgsConstructor
アノテーションという、finalフィールドのみを引数に持つコンストラクタを自動生成してくれるアノテーションもあるようですが、使い方がイメージできなかったため、今回の記事では割愛します。
Lombokは便利なライブラリなので、他の機能も学習し、使いこなすことで開発効率を上げていきたいと思っています。