Mapstruct可选映射

时间:2018-09-19 11:29:02

标签: java spring mapstruct

我想知道如何使用mapping来更改此mapstruct以避免nullPointer异常。 rep.getClientLevelType()可以为null,也可以为DIRECT或     RELATED。在fromValuenull上执行empty.string时,会发生空指针异常。    我不知道该怎么做,仅当使用rep.getClientLevelType()的{​​{1}}不为null时才显示此字段。

mapstruct

从wsdl生成的枚举文档:

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

@XmlType(name = "ClientLevelType") @XmlEnum public enum ClientLevelType { DIRECT, RELATED; public String value() { return name(); } public static ClientLevelType fromValue(String v) { return valueOf(v); } }

WSDL

1 个答案:

答案 0 :(得分:3)

mapstruct可以隐式完成将String转换为enum的过程,请参见文档中的implicit type conversions

因此,无需添加expression,而只需添加source,或者当字段名称匹配时,您甚至可以将其排除在外,然后MapStruct将自动检测映射。