我想使用
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
}]
一种解决方案是使用 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();