Насколько я понимаю, если я использую аннотацию @Singular, это делает список неизменным
Нет, Lambok просто создает метод для одного элемента add, для вашего класса (я настоятельно рекомендую изменитьимя к именам).Вам просто нужно вызвать метод "clearNames"
@Value
@Builder(toBuilder = true)
class Demo {
private BigInteger id;
@Singular
private List<String> names;
}
Lambok генерировать следующий строитель
public static class UserBuilder {
private BigInteger id;
private ArrayList<String> names;
UserBuilder() {
}
public User.UserBuilder name(String name) {
if (this.names == null) this.names = new ArrayList<String>();
this.names.add(name);
return this;
}
public User.UserBuilder names(Collection<? extends String> names) {
if (this.names == null) this.names = new ArrayList<String>();
this.names.addAll(names);
return this;
}
public User.UserBuilder clearNames() {
if (this.names != null)
this.names.clear();
return this;
}
...
public User build() {
...
}
public String toString() {
...
}
}