Sim*_*rli 7 java list equals emf
我仍然是EMF的新手,所以也许我的问题没有意义,或者我假设错了.
我正在开发一个模型驱动的项目,所以我定义了一个ecore元模型并生成了关联代码.现在我正在尝试进行单元测试,我需要能够测试对象之间的相等性,尤其是在扩展EObject的对象之间.
我尝试使用EcoreUtil.equals()来进行测试,但它总是返回false,因为我的对象包含列表(类EList)中的引用,这些引用没有以相同的方式排序.但是,我在我的元模型中明确定义了引用不是有序的:我想使用它们更像Set than List.
所以,我最终决定在我的genereated*Impl Class中实现我自己的equals方法,即使它在javadoc中不鼓励,但它有另一种方式,更优雅,测试EMF对象之间的结构相等而不考虑顺序名单?
谢谢!
您可以实现自己的实用程序类,在其中使用 EObject 默认 equals 方法编写自己的无序列表比较代码。
您可以使用列表“包含”在EqualityHelper.equals(List list1, List list2)中实现您的实现 ,而不是像该方法那样按索引进行。