java map的结构体,java – 使用mapstruct的参数映射集合

要使用mapstruct映射某个对象,我需要一些需要额外参数来进行自定义后处理的工作:

@Mapper

public abstract class AlertConfigActionMapper {

@Mappings({ @Mapping(target = "label", ignore = true)})

public abstract AlertConfigActionTO map (AlertConfigAction action, Locale userLanguage);

@AfterMapping

public void setLabel (AlertConfigAction action, @MappingTarget AlertConfigActionTO to, Locale userLanguage) {

for (AlertConfigActionLabel label : action.getAlertConfigActionLabels()) {

if (label.getLanguage().equals(userLanguage)) {

to.setLabel(label.getLabel());

break;

} else if (label.getLanguage().equals(Locale.ENGLISH)) {

to.setLabel(label.getLabel());

}

}

}

}

这工作很好.

当我将以下方法添加到此映射器时,问题开始:

public abstract ArrayList mapList (List actions, Locale userLanguage);

我需要传递这个参数(userLanguage),但是在这种情况下,mapstruct似乎是“分解”的:我为这个部分生成以下代码(这自然会给出一个编译错误):

@Override

public List mapList(List actions, Locale userLanguage) {

if ( actions == null && userLanguage == null ) {

return null;

}

List list = new List();

return list;

}

我确定它与参数相关,因为如果我删除它(从所有映射方法),那么mapList方法是正确生成的.

在这种情况下允许自定义参数需要做什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值