自分の勉強も兼ねて、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ファイルをどのディレクトリにでも作成できる。
この設定はディレクトリ内の全てのファイル、ディレクトリに適用されます。