英文:
Problems mapping 2 lists with different names using Java modelMapper
问题
我有4个类;
public class Class1
{
private String id;
private List<Class1a> class1aItems = null;
....
}
public class Class1a
{
private String id;
private String info;
....
}
public class Class2
{
private String id;
private List<Class2a> class2aItems = null;
...
}
public class Class2a
{
private String id;
private String info;
...
}
而且我不能给Class1和Class2的列表设置相同的名称。
然后,我必须使用自动映射器将Class1映射到Class2,像这样:
TypeMap<Class1, Class2> typeMap = modelMapper.createTypeMap(Class1.class, Class2.class);
typeMap.addMapping(Class1::getClass1aItems, Class2::setClass2aItems);
Class2 class2 = modelMapper.map(class1, Class2.class);
对于主类来说它是有效的(Class1被映射到Class2),但是对于列表不起作用。在映射之前,Class2有一个空的class2aItems,而class1aItems在映射之前被填充了3个项目。
我做错了什么?
英文:
I have 4 classes;
public class Class1
{
private String id;
private List<Class1a> class1aItems = null;
....
}
public class Class1a
{
private String id;
private String info;
....
}
public class Class2
{
private String id;
private List<Class2a> class2aItems = null;
...
}
public class Class2a
{
private String id;
private String info;
...
}
and i can't set the same name to the lists in Class1 and Class2.
Then, i have to map Class1 into Class2 using automapper like this:
TypeMap<Class1, Class2> typeMap = modelMapper.createTypeMap(Class1.class, Class2.class);
typeMap.addMapping(Class1::getClass1aItems, Class2::setClass2aItems);
Class2 class2 = modelMapper.map(class1, Class2.class);
For the main classes it works (Class1 is mapped into Class2) except for the list. Class2 have an empty class2aItems while before the mapping class1aItems was populated with 3 items.
What am I doing wrong ?
答案1
得分: 1
尝试在你的目标类中实现 java.io.Serializable
:
public class Class2 implements Serializable
{
private String id;
private List<Class2a> class2aItems = null;
...
}
public class Class2a implements Serializable
{
private String id;
private String info;
...
}
英文:
Try implement java.io.Serializable
in your destiny Class
public class Class2 implements Serializable
{
private String id;
private List<Class2a> class2aItems = null;
...
}
public class Class2a implements Serializable
{
private String id;
private String info;
...
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论