假设我有一个使用lombok注解的类,如下所示:
@Builder
class Band {
String name;
String type;
}
我知道我能做到:
Band rollingStones = Band.builder().name("Rolling Stones").type("Rock Band").build();
有没有一种简单的方法,可以使用现有对象作为模板创建 Foo 对象,并更改其中一个属性?例如:```python foo = Foo() new_foo = create_from_template(foo, {'property_to_change': 'new_value'}) ```
其中 `create_from_template` 函数会返回一个新的 `Foo` 对象,它和 `foo` 对象除了 `property_to_change` 属性不同之外,其他所有属性都相同。
Band nirvana = Band.builder(rollingStones).name("Nirvana");
我无法在Lombok文档中找到这个。
@Wither
:Foo f1 = f0.withX(42)
。 - maaartinus@Wither
生成的 with* 方法总是返回一个新对象,而不是设置现有对象的字段。这样效率较低。 - MGhostSoft@Wither
。对于超过两个字段的更改,使用toBuilder
更优。请参见下面我的回答。 - maaartinus@Wither
将不起作用,但.toBuilder().build()
会起作用。 - M. Justin