在 Eclipse 中使用 AutoValue 注解

Using AutoValue Annotations in Eclipse

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

构建注释允许您使用构建器模式构建不可变的 POJO,例如

SimpleFeature.builder().id("test").build()

等效注释(这并不奇怪,因为 AutoParcel 是 Autovalue 的一个端口,具有 android 特定功能,即 Parcelable)

@AutoValue.Builder

您应该能够在 https://github.com/google/auto/tree/master/value#builders

找到更全面的文档

正如 JohnWowUs 的评论所暗示的,这主要是 Eclipse 问题。

他提到的 link 只是解决方案的一部分,但我不需要将更多的 JAR 放入项目中。在 issue in the AutoValue repo 的帮助下,专门配置 maven-compiler-plugin,将 JDK1.7 设置为目标,将以下部分添加到 pom.xml:

<annotationProcessors>
    <annotationProcessor>com.google.auto.value.processor.AutoValueProcessor</annotationProcessor>
</annotationProcessors>