gpt4 book ai didi

java - 如何配置 MapStruct 以在无法映射枚举值时抛出异常

转载 作者:行者123 更新时间:2023-12-04 15:02:06 35 4
gpt4 key购买 nike

这是我的映射器:

@Mapper
public interface ProductMapper {
ProductClassification toProductClassification(ProductTypes pisType);
}

ProductTypesProductClassification 是枚举。我希望它在无法映射枚举时抛出异常,但出现编译器错误:源枚举中的以下常量在目标枚举中没有对应的常量,必须通过添加额外的映射来映射:EXTERNAL、UNKNOWN。

我尝试使用 @ValueMappings 注解,但只能将其配置为将值设置为 null,这还不够:

@ValueMappings({
@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.NULL)
})

将 MapStruct 映射器配置为在无法映射枚举常量时抛出异常的正确方法是什么?

最佳答案

目前这是不可能的。

但是,此功能将成为下一个 1.5 版本的一部分。它已经在 SNAPSHOT 构建中实现并可用。

将有一个新的映射常量可通过 MappingConstants.THROW_EXCEPTION 访问,您可以将其设置为 ValueMappingTarget

所以在这个例子中,为了抛出任何剩余映射的异常,你可以这样写:

@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)

注意在回答这个问题时(2021 年 3 月 29 日)此功能尚未发布。

关于java - 如何配置 MapStruct 以在无法映射枚举值时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66795984/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com