gpt4 book ai didi

java - Mapstruct 可选映射

转载 作者:行者123 更新时间:2023-12-01 19:48:17 25 4
gpt4 key购买 nike

我想知道如何使用 mapstruct 更改此映射以避免 nullPointer 异常。rep.getClientLevelType() 可以为 null,也可以为 DIRECT相关。当 fromValuenullempty.string 上执行时,会发生空指针异常。 我不知道如何做到这一点:仅当使用 mapstructrep.getClientLevelType() 不为 null 时,该字段才存在。

@Mapping(target = "clientLevelType", expression = "java(ClientLevelType.fromValue(rep.getClientLevelType()))")

从 wsdl 生成的枚举文档:

@XmlType(name = "ClientLevelType")
@XmlEnum
public enum ClientLevelType {

DIRECT,
RELATED;

public String value() {
return name();
}

public static ClientLevelType fromValue(String v) {
return valueOf(v);
}
}

WSDL:

   <xs:simpleType name="ClientLevelType">
<xs:restriction base="xs:string">
<xs:enumeration value="DIRECT"/>
<xs:enumeration value="RELATED"/>
</xs:restriction>
</xs:simpleType>

最佳答案

可以通过mapstruct隐式地将String转换为enum,请参阅implicit type conversions在文档中。

因此,无需添加表达式,只需添加,或者当字段名称匹配时,您甚至可以将其省略,然后 MapStruct 将自动检测映射。

关于java - Mapstruct 可选映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52404850/

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