Android, изменить значение параметра Auto Value

Я использую Google Auto-value для своих объектов, а также я использовал 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 ответ

Без повторной инициализации вы НЕ МОЖЕТЕ отредактировать определенный параметр вашего объекта с помощью @AutoValue аннотация (типизированный объект); Эта неизменность - это то, что AutoValue стремится обеспечить для вашего объекта, потому что основная цель AutoValue - создавать неизменяемые объекты без написания шаблонных кодов.

Если вы хотите узнать больше об AutoValue и о том, для чего предназначена эта библиотека, используйте следующие ссылки:

Кроме того, если вы хотите инициализировать новый объект с другими значениями параметров, библиотека with-er может быть полезна.

Я надеюсь, что это помогает.

Другие вопросы по тегам