While all three remove boilerplate, the similarities don't go much further. Records have stronger semantics with important downstream benefits, which makes them better*. (* not always; depends on circumstances; excuse the clickbait)
Javaのコンパイル時に定型コードを自動生成してくれるLombokをいろいろ触ってみたのでメモする。 @NonNull メソッドの引数に付与してnullチェックを生成する。 メソッドの先頭でnullかどうか確認し、nullの場合はNullPointerExceptionをthrowする。コンストラクタの場合はsuper()やthis()の呼び出しの後にチェックされる。 生成前 public void hoge(@NonNull Object fuga){ System.out.println(fuga); } 生成後 public void hoge(@NonNull Object fuga) { if (fuga == null) { throw new NullPointerException("fuga is marked @NonNull but is null"); } else
getterやsetter、コンストラクタなどのロジックと関係ないコードをボイラープレートコードと言います。Lombokはそれをアノテーション付加することにより生成してくれます。 Lombokはこちらからダウンロードします。 lombok.jarがダウンロードされるのでダブルクリックするとIDEを検出してくれます。 IDEにチェックを入れ、「Install / Update」をクリックします。 eclipse.iniやsts.iniが修正(追加)されます。 mavenを使用している場合、pom.xmlに以下を追加します。 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.14.0</version> <scope>provided</scope> </de
はじめに 本記事は Java Advent Calendar 2019 の3日目の記事です。 LombokのBuilderパターンについて解説します。 「Builderパターン」とは? デザインパターンの一種で、生成処理を積み上げてインスタンスを生成するパターンです。 処理を積み上げて生成していく様子から「Builder(建築者)パターン」と呼ばれています。 GoFのデザインパターンにもBuilderパターンがありますが、「Builder」が抽象クラスで「ConcreteBuilder(具体的建築者)」や「Director(監督者)」が存在します。 それに対し、LombokのBuilderパターンは具体的な「Builder」のみ存在します。 このように簡潔なBuilderパターンは、「Effective Java」という本で紹介されているようです。 環境 Java:10.0.2 IDE:I
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く