Java ModelMapper:如何处理枚举的空值
我正在尝试使用ModelMapper将一种对象类型映射到另一种对象类型。 我在PropertyMap实现中定义了以下映射:Java ModelMapper:如何处理枚举的空值,java,modelmapper,Java,Modelmapper,我正在尝试使用ModelMapper将一种对象类型映射到另一种对象类型。 我在PropertyMap实现中定义了以下映射: map().getExtended().setIncludeMaskType(MaskType.fromValue(source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType())); 问题是源类型方法调用source.getExtendedPollingType().get
map().getExtended().setIncludeMaskType(MaskType.fromValue(source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType()));
问题是源类型方法调用source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType()
当目标类型接受MaskType
enum时返回字符串
因此,我使用MaskType.fromValue()
将字符串转换为enum。
问题是,的值失败,原因是:java.lang.IllegalArgumentException
,因为这是源方法调用,在配置期间基本上返回null
那么我应该如何处理这个用例呢?好的,看来正确的方法是使用转换器:
using((MappingContext<String, MaskType> context) -> {
return MaskType.fromValue(context.getSource());
}).
map(source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType()).getExtended().setIncludeMaskType(null);
使用((映射上下文)->{
返回MaskType.fromValue(context.getSource());
}).
映射(source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType()).getExtended().setIncludeMaskType(null);
这里将详细说明这一点: