Nehmen wir an, ich habe eine Schnittstelle namens Importable
, die mehrere Implementierungen hat und einer von ihnen ist ImportableImpl
.Umwandlung Liste <Staging <Importable>> zu Liste <Staging <ImportableImpl >> mit Java 8 Stream
Ich habe eine Liste einer Klasse Staging
, die einen generischen Typ hat: Importable
.
Via Java 8 Strom, würde Ich mag die Liste verwandeln:
List<Staging<Importable>> list1
auf eine Liste:
List<Staging<ImportableImpl>> list2
Ich bin schon sicher, dass die Liste list1
eine Liste von Staging<ImportableImpl>
, so nein ClassCastException
kann auftreten. Ich weiß nicht, ob Java diese Art der Transformation mit Generika-Typ autorisiert.
Ich wollte so etwas versuchen:
list1.stream()
.map(Staging::getImportable) // retrieve generic type
.map(ImportableImpl.class::cast)
.collect(Collectors.toList())
Aber damit werde ich ein List<ImportableImpl>
und keinen List<Staging<ImportableImpl>>
bekommen.
Wie erstellen Sie ein "Staging" -Objekt? – BretC
Warum müssen Sie das tun? Vielleicht sollten Sie Ihrer Schnittstelle weitere Methoden hinzufügen. – flakes