LoginSignup
8
10

More than 5 years have passed since last update.

Lombokの日本語訳

Last updated at Posted at 2015-02-03

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

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10