使用javers 1.4.1。
我在POJO中有一个字段,声明如下:
private Collection<String> names;
然后使用这样的具体Collection
类的实例进行初始化:
names = new ArrayList<>();
当我对这个类运行测试时,javers会抱怨以下错误:
JaversException: MANAGED_CLASS_MAPPING_ERROR given javaClass 'class java.util.ArrayList is mapped to java.util.ArrayList, expected ManagedType
如果我将其初始化为内联,则会出现同样的错误,例如:
private Collection<String> names = new ArrayList<>();
另一方面,如果我将该字段声明为List
,那么javers很高兴:
private List<String> names;
我是javers的新手,它被其他人引入了该项目。但我所做的只是将这个新字段添加到现有的POJO中。我需要看什么和/或调整以使javers高兴?
答案 0 :(得分:1)
原因是,JaVers必须(静态地)知道它是List还是Set。没有这些信息,JaVers不知道如何比较两个集合。所以你必须改变你的POJO。
此错误消息有点误导,这里存在问题https://github.com/javers/javers/issues/353
我希望High-level Collection interface is not supported, try at least Set or List