我将SDK从Android移植到普通Java并且遇到了我不理解的AutoParcel注释。
以下是original class和以下代码段:
@AutoParcel.Builder
public abstract static class Builder {
public abstract Builder id(String id);
...
public abstract SimpleFeature build();
}
public static Builder builder() {
return new AutoParcel_SimpleFeature.Builder();
}
我能够将所有内容移植到AutoValue而不会发生任何事故,除了最后一个函数,因为我不明白它是什么或它在AutoValue中等效。
有人可以解释这是什么,以及它在AutoValue中的等价物是什么?
答案 0 :(得分:2)
构建注释允许您使用构建器模式构造不可变的POJO,例如
SimpleFeature.builder().id("test").build()
等效注释(毫不奇怪,因为AutoParcel是一个具有Android特定功能即可Parcelable的Autovalue端口)
@AutoValue.Builder
您应该可以在https://github.com/google/auto/tree/master/value#builders
找到更全面的文档答案 1 :(得分:2)
JohnWowUs'评论表明,这主要是Eclipse问题。
他提到的链接只是解决方案的一部分,但我并不需要将更多的JAR放入项目中。借助issue in the AutoValue repo并专门配置maven-compiler-plugin,将JDK1.7设置为目标,并将以下部分添加到pom.xml中:
<annotationProcessors>
<annotationProcessor>com.google.auto.value.processor.AutoValueProcessor</annotationProcessor>
</annotationProcessors>