如何使用泛型创建 AutoValue class?

How can I create a AutoValue class with generics?

我想要一个使用 AutoValue 的数据 class,其中一个 属性 是通用的, 想知道我做错了什么?

public abstract class Data<T> {

    public static <T> Data createData(T value, Integer index) {
        return new AutoValue_Data<T>(value, index);
    }

    @NotNull
    public abstract T value();

    @NotNull
    public abstract Integer index();
}

您的代码看起来应该可以工作,其中一行应该得到修复警告:

public static <T> Data createData(T value, Integer index) {

应该是

public static <T> Data<T> createData(T value, Integer index) {

您在 Data 之后忘记了泛型 T,您的代码应该是:

public abstract class Data<T> {

    public static <T> Data <T> createData(T value, Integer index) {
        return new AutoValue_Data<T>(value, index);
    }

    @NotNull
    public abstract T value();

    @NotNull
    public abstract Integer index();
}