如何更新现有 java lombok Builder 对象的任何参数值?
How to update any parameter value of existing java lombok Builder object?
如果我有一个@Builder AnObj,
import lombok.Builder;
@Builder public class AnObj {
private final String name;
private final int age;
}
及其属性(姓名、年龄),并且创建了一个实例
AnObj a = AnObj.builder()
.name("abc")
.age(25)
.build();
System.out.println("anInstance: " + a.toBuilder().toString());
// Prints
anInstance: AnObj.AnObjBuilder(name=abc, age=25)
那么我如何使用相同的对象 (a) 但其中一个参数具有更新的值(例如,age是 40)
我试过了,
a.toBuilder().age(40).build();
System.out.println("anInstance after update: " + a.toBuilder().toString());
// Prints the same values again:
anInstance after update: AnObj.AnObjBuilder(name=abc, age=25)
预期打印结果:
*// AnObj.AnObjBuilder(name=abc, age=40)*
提前感谢您的宝贵时间。
当您调用 toBuilder.age(40).build()
时,您不会将其重新分配给实例。
代码应如下所示:
a = a.toBuilder().age(40).build();
如果有帮助,请告诉我。
如果我有一个@Builder AnObj,
import lombok.Builder;
@Builder public class AnObj {
private final String name;
private final int age;
}
及其属性(姓名、年龄),并且创建了一个实例
AnObj a = AnObj.builder()
.name("abc")
.age(25)
.build();
System.out.println("anInstance: " + a.toBuilder().toString());
// Prints
anInstance: AnObj.AnObjBuilder(name=abc, age=25)
那么我如何使用相同的对象 (a) 但其中一个参数具有更新的值(例如,age是 40)
我试过了,
a.toBuilder().age(40).build();
System.out.println("anInstance after update: " + a.toBuilder().toString());
// Prints the same values again:
anInstance after update: AnObj.AnObjBuilder(name=abc, age=25)
预期打印结果:
*// AnObj.AnObjBuilder(name=abc, age=40)*
提前感谢您的宝贵时间。
当您调用 toBuilder.age(40).build()
时,您不会将其重新分配给实例。
代码应如下所示:
a = a.toBuilder().age(40).build();
如果有帮助,请告诉我。