Я получаю список массивов объектов,
List<Object[]> rawRows = service.getRows();
Можно получить любое конкретное значение, например,
(Date)((Object[])rawRows.get(i))[3] // In each item, Array Element #3 is a certain Date
Мне нужно сопоставить это с List<Report>
для POJO у которого есть определенные c поля, определенные для каждого значения:
public class Report {
private String abbreviation;
private String username;
private Integer recallid;
private Date recalldate;
// ... + getters/setters
// Constructor
public Report (String abbreviation, String username, Integer recallid, Date recalldate, ...)
{
}
}
Я озадачен следующим: Как бы я указал index в этом выражении Lamba для сопоставления с моим новым List<Report>
?
List<Report> detailReports = rawRows.stream().map(obj -> new Report(
(String)((Object[])rawRows.get(0))[0], // I'm hard-coding (0) but need "i"
(String)((Object[])rawRows.get(0))[1], // I'm hard-coding (0) but need "i"
(Integer)((Object[])rawRows.get(0))[2],// I'm hard-coding (0) but need "i"
(Date)((Object[])rawRows.get(0))[3], // I'm hard-coding (0) but need "i"
//...
)).collect(Collectors.toList());
Моя цель - получить List<Report>
со всеми элементами массива, сопоставленными с POJO для объекта точно в указанной последовательности. Но у меня нет индекса i
для отслеживания. В этом примере я жестко кодирую 0
как rawRow
, чтобы получить из исходного списка.