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 и о том, для чего предназначена эта библиотека, используйте следующие ссылки:
- http://ryanharter.com/blog/2016/03/22/autovalue
- https://speakerdeck.com/shaunkawano/introduction-to-autovalue
Кроме того, если вы хотите инициализировать новый объект с другими значениями параметров, библиотека with-er может быть полезна.
Я надеюсь, что это помогает.