Java ModelMapper:如何处理枚举的空值

Java ModelMapper:如何处理枚举的空值,java,modelmapper,Java,Modelmapper,我正在尝试使用ModelMapper将一种对象类型映射到另一种对象类型。 我在PropertyMap实现中定义了以下映射: map().getExtended().setIncludeMaskType(MaskType.fromValue(source.getExtendedPollingType().getMaskSettings().getIncludeMask().getMaskType())); 问题是源类型方法调用source.getExtendedPollingType().get

我正在尝试使用ModelMapper将一种对象类型映射到另一种对象类型。 我在PropertyMap实现中定义了以下映射:

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);
这里将详细说明这一点: