Lombokを使っていて、あるクラスに@Builder
をつけてBuilderパターンでインスタンス生成した
このインスタンスをcloneして、あるプロパティの値だけを上書きしたくなったので方法を調べた
@Builder(toBuilder = true)
@Builder
のアノテーションを@Builder(toBuilder = true)
にするだけでできるみたい
これによりtoBuilder()
が使えるので、再度Builderの形に戻して、値をセットして、build()
を実行する
@Builder(toBuilder = true) public class Hotel { private String name; }
Hotel hotel1 = Hotel.builder().name("ホテル1").build(); Hotel hotel2 = hotel1.toBuilder().name("ホテル2").build();