Android,编辑自动值参数值

时间:2016-10-30 13:18:52

标签: android auto-value

我使用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*/ 

1 个答案:

答案 0 :(得分:3)

如果不再次初始化,则无法使用@AutoValue注释(值类型对象)编辑对象的特定参数;这种不变性是AutoValue旨在为您的对象提供的,因为AutoValue的主要目的是创建不可变对象而无需编写样板代码。

如果您想了解有关AutoValue的更多信息以及此图书馆旨在实现以下链接的内容可能会有所帮助:

此外,如果要初始化具有不同参数值的新对象,则可能有用的库。

我希望它有所帮助。

相关问题