【问题标题】:How can I create a AutoValue class with generics?如何使用泛型创建 AutoValue 类?
【发布时间】:2021-03-30 04:18:27
【问题描述】:
我想要一个使用 AutoValue 的数据类,其中一个属性是通用的,
想知道我做错了什么?
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();
}
【问题讨论】:
标签:
java
android
auto-value
【解决方案1】:
您的代码看起来应该可以工作,其中一行应该得到一个警告:
public static <T> Data createData(T value, Integer index) {
应该是
public static <T> Data<T> createData(T value, Integer index) {
【解决方案2】:
你忘记了 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();
}