Ich möchte alle Übertragungen filtern, für die das signedOn Feld null ist. Wenn ich den ersten Code ausführe, ist es klar, welche null sind und welche nicht und sie sind korrekt geloggt, aber wenn ich den Stream-Filter starte, gibt es eine leere Liste zurück und ich kann nicht finden, wo das Problem liegt it ... signedOn ist ein Datumsfeld.Java 8 Stream Filter gibt immer eine leere Liste zurück
Dies funktioniert und protokolliert alle, ob die Einträge sind null oder nicht:
for (Transfer transfer : route.getTransferCollection()) {
if (transfer.getSignedOn() == null) {
logInfo("This transfer is null");
} else if (transfer.getSignedOn() != null) {
logInfo("This transfer is not null");
}
}
Dies gibt eine leere Liste:
return route.getTransferCollection()
.stream()
.filter(transfer -> transfer.getSignedOn() == null)
.collect(Collectors.toList());
}
Was ist der Rückgabetyp von 'getTransferCollection()'? – Harald
Wie wäre es mit einer Log-Anweisung innerhalb 'filter'? – Eugene
@Harald es ist eine Sammlung –
brightpants