在Eclipse中使用AutoValue批注

时间:2016-03-16 21:42:39

标签: java android auto-value

我将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中的等价物是什么?

2 个答案:

答案 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>