私は、Parcelable Androidクラスを生成するためにAutoValue拡張を使用しています。ドキュメントには、具体的には、1つの@AutoValueは別を拡張することはできませんと述べている:「あなたは、共通のフィールドを持っている場合は、両方の実装が実装インターフェイスでそれらを置くことができる」 https://github.com/google/auto/blob/master/value/userguide/howto.md#inheritどのようにAutoValueクラスをサブクラス化しますか?
別の開発者がこれで私を助けて、と示唆されました私はこれが、ライブラリが継承よりも構成を優先していることを意味していると仮定しています。
私はちょっと迷っています。 AutoValueクラスを「サブクラス化する」最もシンプルな具体的な例を提供できる人がいれば、それは分かります。
@AutoParcelGson
public abstract class User implements Parcelable {
public abstract String username();
public static User create(String username) {
return builder().username(username).build();
}
public static Builder builder() {
return new AutoParcelGson_User.Builder();
}
@AutoParcelGson.Builder
public interface Builder {
Builder username(String username);
User build();
}
}
私は別の@AutoValueクラスにCustomerという名前のフィールドをいくつか追加したいと思います。また、@AutoParcelGsonは私が使用している@AutoValue拡張ですが、これは同じ動作です。