如何使用多个对象中的字段创建新列表,而无需手动设置字段

问题描述 投票:0回答:1

我想使用

FhExtra
中的字段和
FhExtraImportResults
中的其他字段创建一个列表。这个类有很多字段;我只放了几个。我无法编辑
FhExtraImportResults
FhExtra
,因为它们已在其他地方使用。

我正在尝试创建新列表并手动设置字段。有没有更好的方法来使用这些字段创建新列表?

我收到要转换的对象是

List
FhExtraImportResults

public class FhExtraImportResults {
    FhExtra record;
    String error;
    Long loanId;
}

@Data
public class FhExtra {
    String LoanNumber;
    String FILoanNumber;
}

我期望的列表对象看起来像

[{
 LoanNumber : 123
 FILoanNumber : 321
 error : NA
 loanId : 456
}]
java list arraylist java-stream
1个回答
0
投票

一种解决方案是使用 MapStruct 代码生成器在现有类型和新的扁平类型之间生成映射方法。

public class FhListItem {
    String LoanNumber;
    String FILoanNumber;
    String error;
    Long loanId;
}
@Mapper
interface FhListItemMapper {
    @Mapping(target = "LoanNumber", source = "results.LoanNumber")
    @Mapping(target = "FILoanNumber", source = "results.FILoanNumber")
    FhListItem map(FhExtraImportResults results);
}
List<FhExtraImportResults> myList = retrieveList();

FhListItemMapper mapper = Mappers.getMapper(FhListItemMapper.class);
List<FhListItem> newList = myList.stream().map(mapper::map).toList();
© www.soinside.com 2019 - 2024. All rights reserved.