Es ganz auf die Verbräuche ab, die Sie zur Zeit Ihrer Guava der Optionals tun; und das erste Problem liegt in den Unterschieden zwischen beiden.
unter anderem:
- Guava des Optional ist abstrakt, Java 8s ist endgültig;
- Methoden existieren auf Guava, die nicht auf Java 8, und umgekehrt.
Was bedeutet, das erste, was Sie feststellen müssen, ist Ihre verschiedenen Verwendungen von Guava; Dies wird die Art und Weise konditionieren, wie Sie ein äquivalentes Java 8 erstellen müssen.
Aber der Unterschied in der API für beide gegeben, scheinen einige if
s auf dem Weg unvermeidbar ...
Mein hier persönlicher Vorschlag nur würde den ganzen Weg zu gehen und alle aktuellen Anwendungen von Guava ist mit Java 8er ersetzen ; und wenn ein "Ausstiegszeitraum" erforderlich ist, verwerfen Sie die erforderlichen Methoden und stellen Sie sie so lange wie nötig bereit, bis Guava's Optional vollständig ausgeschlossen ist.
Weiteren Kontextinformationen benötigt wird; verwendet Ihre Codebasis Guava's Optional umfangreich? Wie planen Sie, es durch Java 8 zu ersetzen? Wie benutzt du derzeit Guava's Optional? Werden Sie die Verwendung vorhandener Instanzen beispielsweise in Streams .findAny() erwarten? Sie benötigen in erster Linie eine Migrationsstrategie – fge
Wie würden Sie es mit einer if-Anweisung machen? Hast du irgendwas probiert? –
kein generelles Problem mit api migration, habe nur einen Fall, wo ich solche Konvertierung brauche – Libre13