Status Code 303 - See Other

サーバサイド、iOS・アンドロイドアプリ、インフラレベルの話まで幅広くやってます。情報の誤りや指摘・意見などは自由にどうぞ。

Lombok ライブラリ - フィールド関連

主記事
Lombok ライブラリ - Status Code 303 - See Other

この記事では、フィールドに定義可能なアノテーションを記述。
(記事執筆時のバージョン :v1.16.6)

(更新中)

アクセッサ自動生成

指定されたフィールドのアクセッサを提供する。

@Getter

どのようなフィールドに対しても、Lombok が標準的なゲッタを提供する。

標準的なゲッタとは、おそらく以下の内容だと思われる。

  • JavaBeansの命名規則を満たすゲッタ
  • 処理はフィールドをそのまま返す

例:

	private @Getter int foo;

上記を設定することにより、下記のコードが生成される。

	public int getFoo() {
		return this.foo;
	}
オプション

lazy(デフォルト:false)
明示的に書かれていない。遅延初期化?
onMethod
Lombok により生成されたゲッタに設定するアノテーションをリスト形式で記述する。
value(デフォルト:public)
アクセスレベルをゲッタに設定する。

@Setter

指定されたフィールドにセッタを提供する。

オプション

lazy(デフォルト:false)
明示的な説明がない。遅延初期化?
onMethod
Lombok により生成されたセッタに設定するアノテーションをリスト形式で記述する。
value(デフォルト:public)
アクセスレベルをセッタに設定する。

コレクションフィールドに対するデータ格納メソッドの自動生成

@Singular

@Builder を使用しているときに用いられ、コレクションデータのフィールドに指定すると、それに要素を追加する add メソッドに相当するメソッドを自動生成する。
生成するメソッド名は、指定するフィールド名の末尾が「s」であれば、末尾の「s」のないメソッド名になる。
もし、末尾が「s」で終わっていないフィールド名に指定する場合、value オプションで明示しなければコンパイルエラーが発生する。

メソッドパラメータにも指定できるみたいだが、その説明はされていない。

オプション

value
コレクションにデータを格納するメソッド名を指定する。

null チェックの自動生成

@NonNull

Lombok から生成された全てのメソッドにおいて、該当のフィールドに値を割り当てる処理をする前に nullチェックを行う。
もし、 割り当てる値が null だったなら NullPointerException をスローする。

オプション

なし。

注釈
  • たとえ異なるパッケージだったとして @NonNull が付属している生成メソッドには Lombok が null チェックを生成してしまう。
  • このアノテーションは、Java Communityでもサポートすることが決まっているため、Lombok パッケージからは今後削除される予定。
  • @NonNull 削除による影響があるなら、自身で @NonNull を作成し、代わりに使うこと