我使用Google自动值作为我的对象,并且我使用Builder
类和create
方法来初始化我的对象,因此如何在不初始化的情况下编辑对象的特定参数又一次?
@AutoValue
public abstract class test implements Parcelable {
public abstract String name();
public abstract int age();
public static test create(String name, int age) {
return builder()
.name(name)
.age(age)
.build();
}
public static Builder builder() {
return new AutoValue_test.Builder();
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder name(String name);
public abstract Builder age(int age);
public abstract test build();
}
}
现在在我的代码中我想要更改name
属性(t包含数据):
test t = test.Builder.name("Ali").age(26).build();
/*how to change name value*/
答案 0 :(得分:3)
如果不再次初始化,则无法使用@AutoValue
注释(值类型对象)编辑对象的特定参数;这种不变性是AutoValue旨在为您的对象提供的,因为AutoValue的主要目的是创建不可变对象而无需编写样板代码。
如果您想了解有关AutoValue的更多信息以及此图书馆旨在实现以下链接的内容可能会有所帮助:
此外,如果要初始化具有不同参数值的新对象,则可能有用的库。
我希望它有所帮助。