我想知道如何使用mapstruct更改这个mapstruct以避免nullPointer异常。rep.getClientLevelType()可以是null,也可以是DIRECT或RELATED。当fromValue在null或empty.string上执行时,会出现空指针异常。我不知道如何做,只有当rep.getClientLevelType()使用mapstruct不是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>发布于 2018-09-19 12:00:50
可以通过mapstruct隐式地将String转换为enum,请参阅文档中的隐式转换。
因此,与添加expression不同的是,只需添加source,或者当字段名称匹配时,您甚至可以忽略这些字段,然后MapStruct将自动检测映射。
https://stackoverflow.com/questions/52404850
复制相似问题