Android 环氧树脂要求每个模型属性实现equals和hashCode错误

Android 环氧树脂要求每个模型属性实现equals和hashCode错误,android,epoxy,Android,Epoxy,我已在此处为此问题创建了一个小型测试应用程序: 我想将对象列表传递到环氧树脂控制器中,以便生成一个图形。但是,我在构建应用程序时遇到了以下错误: 错误:环氧处理器异常:Iterable中的类型未实现 哈希代码。类型:kwaai.com.example\u hashcodequals.GraphData视图 属性{view='HeaderView',name='setLineChart', type=java.util.LinkedList} 环氧树脂要求每个模型属性实现equals和hashCo

我已在此处为此问题创建了一个小型测试应用程序:

我想将对象列表传递到环氧树脂控制器中,以便生成一个图形。但是,我在构建应用程序时遇到了以下错误:

错误:环氧处理器异常:Iterable中的类型未实现 哈希代码。类型:kwaai.com.example\u hashcodequals.GraphData视图 属性{view='HeaderView',name='setLineChart', type=java.util.LinkedList} 环氧树脂要求每个模型属性实现equals和hashCode 以便可以跟踪模型中的更改。如果需要属性 要排除,请使用选项“DoNotHash”。如果你想忽略这一点 警告使用选项“IgnoreRequireHashCode”

我认为这是因为我在GraphDataFeed的LinkedList对象列表上使用@ModelProp,而不是在Epoxy示例应用程序中的基元类型上使用@ModelProp

@ModelProp
public void setLineChart(LinkedList<GraphData> graphDataFeed) { }
更改后,应用程序将正确构建和运行。你可以看到下图

但是,我不想忽略该属性,因为我知道环氧树脂使用扩散来更新recyclerview中的模型:

忽略该属性可能意味着我的模型无法在recyclerview中正确更新。 在这里的指导材料中,我看到它说:

模型的状态由其equals和hashCode决定 实现,它基于模型的所有 财产

此状态用于扩散,以确定模型何时发生了如此大的变化 您可以更新视图

这些方法是生成的,因此您不必创建它们 手动

为什么没有为我生成这些方法?如果没有生成,我如何自己生成这些方法以消除错误?

您的GraphData类需要实现equals和hashcode。它在您复制的错误消息中正确地指出了这一点 Iterable中的类型未实现哈希代码。类型:kwaai.com.example\u hashcodequals.GraphData

您的GraphData类需要实现equals和hashcode。它在您复制的错误消息中正确地指出了这一点 Iterable中的类型未实现哈希代码。类型:kwaai.com.example\u hashcodequals.GraphData

@ModelProp(options = ModelProp.Option.IgnoreRequireHashCode)