自分の勉強も兼ねて、Lombok公式サイトをなんちゃって和訳してみます。
間違っているかもしれませんが、あしからず。
あと、和訳できるところから和訳しているので、歯抜け状態です。
公式サイト
@NonNull
Lombok 0.11.10 から利用可能
メソッドやコンストラクタの引数に@NonNull
を使うと、Nullチェック文を自動生成します。
フィールドに@NonNull
を記述すると、全てのメソッドやコンストラクタにnullチェック文が生成されます。
@Data
の例を通して?
lombok.NonNull
を引数に設定すると、指定したメソッドやコンストラクタにnullチェック文が追加されます。
nullチェックはif (param == null) throw new NullPointerException("param");
のような文で、メソッドの一番上に追加されます。
コンストラクタでは、明示的にthis()
やsuper()
が呼ばれたすぐ下に、nullチェックが追加されます。
もしnullチェックが上の方ですでに存在するならば、nullチェックは追加されません。
@Data
全てのフィールドに@ToString, @EqualsAndHashCode, @Getter
が、finalでないフィールドに@Setter
が、そして@RequiredArgsConstructor
!
概略
@Data
は、@ToString, @EqualsAndHashCode, @Getter / @Setter を一緒に設定できる、ショートカット用のアノテーションです。
つまり、@Dataは、POJOs(Plain Old Java Objects)やbeansで通常使われる定型文(boilerplate)を生成します。
getterは全てのフィールド、setterはfinalでないフィールド、
〜
省略
〜
生成されるgetter/setterの全てはpublic
です。
アクセス修飾子を上書きするには、フィールドやクラスに明示的に@Setter
/@Getter
を記述してください。
AccessLevel.NONE
を使うと、生成されたgetter / setterは使えなくなります。??
@Getter
と @Setter
概略
フィールドに@Getter
や@Setter
を書くと、lombokはデフォルトのgetter/setterを自動的に生成します。
デフォルトのgetterはフィールドをそのまま返します。フィールドの名前がfoo
の場合、関数名はgetFoo
です。
(フィールドの型がboolean
の場合、関数名はisFoo
)
生成されたgetter/setterは、明示的にAceessLevel
を指定しない限り、public
です。(下記の例参照)
利用できるアクセスレベルは、PUBLIC
,PROTECTED
,PACKAGE
,PRIVATE
です。
AccessLevel.NONE
というアクセスレベルで、いつでもどんなフィールドに対しても、getter/setterの自動生成を手動で無効にできます。
つまり、クラスに記述された@Getter
, @Setter
, @Data
アノテーションによる振る舞いを、上書きできます。
Supported configuration keys:
lombok.getter.noIsPrefix = [true | false] (default: false)
trueならば、booleanフィールドから生成されたgetterは、接頭辞がisでなくgetになります。
Small print
-
java.lang.Boolean
の接頭辞はisでなくgetです。
@Log
概略
lombok 0.10から クラスにlogアノテーションを書くと、loggerフィールドを生成します。
loggerフィールドの名前はlog
で、型は記述したloggerアノテーションにより決まります。
利用できるアノテーションは6個です。
〜省略〜
するlogアノテーションは、どんなクラスにも使えます。
Configuration System
概略
Lombok 1.14 から利用可能
lombok.config
ファイルをどのディレクトリにでも作成できる。
この設定はディレクトリ内の全てのファイル、ディレクトリに適用されます。