我正在使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
我想要另一个名为Customer的@AutoValue类,它有一些额外的字段.此外,@ AutoParcelGson是我正在使用的@AutoValue扩展,但它是相同的行为.
本指南开始使用共享元素和动画实现打开的图像.
https://android-developers.googleblog.com/2018/02/continuous-shared-element-transitions.html
但抓住了一个例外:
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
at android.support.transition.TransitionSet.setDuration(TransitionSet.java:196)
at android.support.transition.TransitionSet.setDuration(TransitionSet.java:60)
at android.support.transition.Transition.<init>(Transition.java:278)
at android.support.transition.TransitionSet.<init>(TransitionSet.java:91)
at android.support.transition.TransitionInflater.createTransitionFromXml(TransitionInflater.java:151)
at android.support.transition.TransitionInflater.inflateTransition(TransitionInflater.java:70)
Run Code Online (Sandbox Code Playgroud)
打电话时
TransitionInflater.from(context).inflateTransition(R.transition.my_transition)
Run Code Online (Sandbox Code Playgroud)