Javaは10年以上使っていなかったので、勉強していたらLombokという便利な機能を初めて知りました。
ChatGPTにLombokの一覧を作ってとお願いしたら、すぐに作ってくれたのでメモしておきます。
Lombokの機能と説明の一覧
- @Data: @Getter、@Setter、@ToString、@EqualsAndHashCodeを一度に指定します。これにより、フィールドのGetterやSetter、toStringメソッド、equalsやhashCodeメソッドを自動生成します。
- @Getter: フィールドに対するGetterメソッドを自動生成します。
- @Setter: フィールドに対するSetterメソッドを自動生成します。
- @ToString: toString()メソッドを自動生成します。
- @EqualsAndHashCode: equals()およびhashCode()メソッドを自動生成します。
- @AllArgsConstructor: フィールドを引数として持つコンストラクタを自動生成します。
- @NoArgsConstructor: 引数なしのデフォルトコンストラクタを自動生成します。
- @Builder: ビルダーパターンを実装するためのビルダーメソッドを生成します。通常、不変なオブジェクトを構築するのに便利です。
- @Value: @Getter、@ToString、@EqualsAndHashCode、@AllArgsConstructorを一度に指定しますが、生成されたクラスは不変です(すべてのフィールドがfinalとなり、setterが生成されません)。
- @Slf4j: Lombokが提供するロギング用のアノテーションで、SLF4Jのロガーを自動的に生成します。
- @RequiredArgsConstructor: ファイナルまたは@NonNullのフィールドだけを引数として持つコンストラクタを自動生成します。
- @NonNull: null許容性を指定せずにフィールドに付与することで、nullチェックを行います。コンストラクタまたはメソッドの引数に適用することもできます。
- @Cleanup: リソースを解放するためのtry-finallyブロックを自動生成します。主にIOやリソースのクリーンアップに使用されます。
- @SneakyThrows: チェック例外をスローするメソッドを定義することを可能にします。@SneakyThrowsが付いたメソッドでは、チェック例外をスローするためのthrows宣言が不要になります。