栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

尝试定义自定义PropertyMap时发生NullPointerException

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

尝试定义自定义PropertyMap时发生NullPointerException

我认为这最终是由于在配置映射器时ModelMapper无法实例化

TimeZone
对象(也没有实例化
LocalDateTime
)。

实际上,您无需配置任何内容。

ModelMapper mapper = new ModelMapper();Foo foo = new Foo();foo.setTimeZone(TimeZone.getDefault());FooModel model = mapper.map(foo, FooModel.class);System.out.println(model.getTimeZoneId()); // "Europe/Berlin" here

这对我有用。ModelMapper发现您想将

TimeZone
‘s属性映射
ID
FooModel
‘s属性
timeZoneId

不过,以防万一您想手动执行此操作:快速阅读文档后,我发现了converters的概念。使用

Converter
将转换
TimeZone
String
可以执行以下操作:

ModelMapper mapper = new ModelMapper();TypeMap<Foo, FooModel> typeMap = mapper.createTypeMap(Foo.class, FooModel.class);Converter<TimeZone, String> tzConverter = ctx -> ctx.getSource().getID() + "!!!";typeMap.addMappings(map -> {    map.using(tzConverter).map(Foo::getTimeZone, FooModel::setTimeZoneId);});Foo foo = new Foo();foo.setTimeZone(TimeZone.getDefault());FooModel model = mapper.map(foo, FooModel.class);System.out.println(model.getTimeZoneId()); // "Europe/Berlin!!!" here


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507921.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号