2016-10-30 3 views
1

私のオブジェクトにgoogleの自動値を使用していますが、Builderクラスとcreateメソッドを使用してオブジェクトを初期化しましたので、オブジェクトを再び初期化せずに特定のパラメータを編集するにはどうすればよいですか?Android、Edit Auto Valueパラメータ値

@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(); 
    } 
} 

は今、私のコードで私は(tはデータが含まれています)nameプロパティを変更したい:

test t = test.Builder.name("Ali").age(26).build(); 
/*how to change name value*/ 

答えて

1

再びそれを初期化せずに、あなたは(@AutoValueアノテーションで値を、あなたのオブジェクトの特定のパラメータを編集することはできません型付きオブジェクト); AutoValueの主な目的は、定型コードを書き込まずに不変オブジェクトを作成するためです。この不変性は、AutoValueがオブジェクトに提供することを目指しています。

あなたは自動入力値についての詳細を知りたいと何このライブラリは、以下のリンクを実現することを目的とすることは役に立つかもしれ場合:

また、初期化したい場合異なるパラメータ値を持つ新しいオブジェクトでは、with-erライブラリが便利です。

私はそれが役に立てば幸い。

関連する問題