Я использую расширение AutoValue для создания классов Parcelable Android. В документации конкретно указано, что один @AutoValue не может расширять другой: https://github.com/google/auto/blob/master/value/userguide/howto.md#inherit
Другой разработчик помог мне в этом и предложил "Если у вас есть общие поля, вы можете поместить их в интерфейс, который реализуются обе реализации". Я предполагаю, что это означает, что библиотека поддерживает композицию над наследованием.
Я признаю, что я потерял. Если бы кто-то мог предоставить простой конкретный пример простейшего способа "подкласса" класса 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, которое я использую, но это то же поведение.