我正在使用mapstruct将一个对象转换为另一个对象。 在要转换的对象中,有一个接口,而mapstruct不喜欢这样。
通过实现方法的默认值并指定要调用的实现,我能够将接口转换为对象:
public default MessagesList interfaceMapping (Integer not, List<MessageEntity> list) {
return messToImpl(numNotification, list);
}
现在的问题是,我不知道如何执行类似的解决方法来转换签名为接口的内部对象。
答案 0 :(得分:0)
只需找到一种为单个对象映射实现自定义代码的好方法:
@Mapping(target = "sender", expression = "java(new YourClass(null, messageEntity.getSenderType(), messageEntity.getSenderID(), messageEntity.getSenderContact()))")
通过这种方式,您可以通过表达式仍然使用mapstruct定义来定义自定义代码。
以防万一您需要导入未定义为源或目标的类,只需记住按以下方式注释该类,以允许mapstruct导入所需的类:
@Mapper(imports = YourClass.class)