Android,编辑自动值参数值
Android, Edit Auto Value parameter value
我正在为我的对象使用 google 自动值,我还使用了 Builder
class 和 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*/
如果不重新初始化,您不能使用@AutoValue
注释编辑对象的特定参数(值类型对象);这种不可变性正是 AutoValue 旨在为您的对象提供的,因为 AutoValue 的主要目的是在不编写样板代码的情况下创建不可变对象。
如果您想了解有关 AutoValue 的更多信息以及该库旨在实现的目标,以下链接可能会有所帮助:
- http://ryanharter.com/blog/2016/03/22/autovalue
- https://speakerdeck.com/shaunkawano/introduction-to-autovalue
此外,如果您想用不同的参数值初始化新对象,with-er 库可能会有用。
希望对您有所帮助。
我正在为我的对象使用 google 自动值,我还使用了 Builder
class 和 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*/
如果不重新初始化,您不能使用@AutoValue
注释编辑对象的特定参数(值类型对象);这种不可变性正是 AutoValue 旨在为您的对象提供的,因为 AutoValue 的主要目的是在不编写样板代码的情况下创建不可变对象。
如果您想了解有关 AutoValue 的更多信息以及该库旨在实现的目标,以下链接可能会有所帮助:
- http://ryanharter.com/blog/2016/03/22/autovalue
- https://speakerdeck.com/shaunkawano/introduction-to-autovalue
此外,如果您想用不同的参数值初始化新对象,with-er 库可能会有用。
希望对您有所帮助。