我想在UserDTO
和User
之间进行映射,但不包括一个字段,例如City
。我如何才能做到这一点,因为我认为这种方法会起作用,但它没有:
ModelMapper modelMapper = new ModelMapper();
modelMapper.typeMap(UserDTO.class,User.class).addMappings(mp -> {
mp.skip(User::setCity);
});
为使配置工作需要添加:
ModelMapper.get配置(). setAmbiguityIgnored(true);
只有当目标字段与多个源字段匹配时,才会出现这种情况。如果源-目标之间存在1-1或0-1匹配,则跳过目标字段的设置将在没有上述设置的情况下起作用。
要使配置正常工作,需要添加:
modelMapper。getConfiguration()。SetDumbuityIgnored(真)
例如。
ModelMapper modelMapper = new ModelMapper();
modelMapper.getConfiguration().setAmbiguityIgnored(true);
modelMapper.addMappings(clientPropertyMap);
modelMapper.map(UserDTO, User);
PropertyMap<UserDTO, User> clientPropertyMap = new PropertyMap<UserDTO, User>() {
@Override
protected void configure() {
skip(destination.getCity());
}
};
由于通用参数,我们无法使用lambda表达式。
ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<Dto, Source>() {
@Override
protected void configure() {
skip(destination.getBlessedField());
}
});
一个非常简单的问题,烟熏我的情况下的漏洞。我试图跳过userDTO的setPassword每次当我转换用户- 在ModelMapper的这一行,我得到了NullPointerException- 我知道“源”映射不存在,但我的问题是,既然我要求它根本不设置密码,它为什么还要关心它。 抱歉,我想我缺少ModelMapper的一些基础知识。谢谢你的时间和帮助。 得到ModelMapper的帮助,跳过一
我试图编写一个简单的复数计算器,可以计算以下表达式: 输入1:(10 30i)(90 20i) 预期输出:(100 50i) 输入2:(10 30i)-(90 20i) 预期输出:(-80 10i) 编辑:我注意到第一次前瞻读取是10而不是40(ascii值 '(' ) . 我如何解决这个问题? 我的代码: 但它总是输出“对不起,我帮不了你。”
问题内容: 码: 输出: 剩余10秒剩余 8秒剩余 6秒剩余 4秒剩余 完成! 问题: 如何显示“ 剩余2秒 ”?经过的时间确实是10秒,但是最后一个onTick()永远不会发生。如果我将第二个参数从2000更改为1000,则输出为: 剩余10秒剩余 9秒剩余 8秒剩余 7秒剩余 6秒剩余 5秒剩余 4秒剩余 3秒剩余 2秒剩余 完成! 如此看来,似乎跳过了最后一个onTick()调用。顺便说一句
我与ModelMapper框架有麻烦。请解释为什么我看到以下行为。 我在build.gradle有以下依赖性 和一个类客户: 我还有一个地图绘制工具: 还有一个测试 在fred()中,方法输出是非红色的“Customer{name=fred,age=40}”(“Customer{name=null,age=40}”)。你能解释一下为什么吗?为什么我在第一个方法中看不到输出“George”?
我有两个类。请求DTO和实体。我想将请求DTO映射到实体。在这种情况下,我想手动插入实体属性之一,这意味着属性不在请求DTO中。如何使用模型映射器实现这一点。 但这不起作用,它说它不能将字符串转换为长字符串。我要求解决这个问题,或者采取更好的方法。