在 Mapstruct 环境中,我有一个方法接受 String 并返回 Enum 值。由于 String 可能不在 Enum 列表之外,因此可以将 ValueMappings 方法配置为抛出 IllegalArgumentException
@ValueMappings({
@ValueMapping(source = "ACTIVE", target = "A"),
@ValueMapping(source = "INACTIVE", target = "I"),
@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
})
String statusEnumToString(Status status);
有没有办法抛出 CustomArgumentException 而不是 IllegalArgumentException?
您可以使用
EnumMapping#unexpectedValueMappingException
自定义应抛出的异常。
例如
@ValueMappings({
@ValueMapping(source = "ACTIVE", target = "A"),
@ValueMapping(source = "INACTIVE", target = "I"),
@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
})
@EnumMapping(unexpectedValueMappingException = CustomArgumentException.class)
String statusEnumToString(Status status)
EnumMapping#unexpectedValueMappingException
Javadoc 中阅读更多相关信息