Hallo zusammen,
ich experimentiere grade mit .stream() und blicke nicht wirklich durch. Ich habe eine Rechnungsliste in der sich Objekte von Typ Rechnung befinden. Jedem Rechnungsobjekt hängt wiederum eine Liste von Produkt-Objekten an. Nun würde ich gerne die Rechnungsliste als CSV Datei speichern.
Erhofft hatte ich mir eine Ausgabe in der Form: Datum; Rechnungsnummer; Typ; [(Produktname; Anzahl; Preis) für jedes Produkt in der angehenagenen Produktliste des Rechnungobjektes]
Bisher habe ich:
Als Output bekomme ich:
2021-01-07; OM20210107; Test; java.util.stream.ReferencePipeline$3@64cee07;
Ein rechnungsobjekt sieht so aus:
Hat jemand eine Idee wie ich zum Ziel komme? Ich bin für jede Hilfe dankbar! 
ich experimentiere grade mit .stream() und blicke nicht wirklich durch. Ich habe eine Rechnungsliste in der sich Objekte von Typ Rechnung befinden. Jedem Rechnungsobjekt hängt wiederum eine Liste von Produkt-Objekten an. Nun würde ich gerne die Rechnungsliste als CSV Datei speichern.
Erhofft hatte ich mir eine Ausgabe in der Form: Datum; Rechnungsnummer; Typ; [(Produktname; Anzahl; Preis) für jedes Produkt in der angehenagenen Produktliste des Rechnungobjektes]
Bisher habe ich:
Java:
public void saveList(ArrayList<Invoice> invoiceList) {
// List<String> csvList= invoiceList.stream().map(inv -> String.format("%s; %s; %s; %s", inv.getDate(), inv.getInvNumb(), inv.getType(), inv.getSubProductList())).collect(Collectors.toList()); // bis dahin geht's noch, aber der Zugriff auf die angehangene Liste geht dann nicht mehr:
List<String> csvList = invoiceList.stream().map(inv -> String.format("%s; %s; %s; %s;", inv.getDate().inv.getInvNumb().inv.getType(), inv.getSubProductList().stream().map(product -> String.format("%s; %d", product.getName().product.getCount())))).collect(Collectors.toList());
for (String csv : csvList) {
System.out.println(csv);
}
}
2021-01-07; OM20210107; Test; java.util.stream.ReferencePipeline$3@64cee07;
Ein rechnungsobjekt sieht so aus:
Java:
public class Invoice {
private String invNumb;
private LocalDate date;
private String type;
public ArrayList<Item> subProductList = new ArrayList<>();
}
Zuletzt bearbeitet: