Wie man java.util.OptionalSomething auf etwas abbildet? in Kotlin

8

Ich habe eine Methode, die java.util.Optional<Something> zurückgibt. Ich möchte diese Methode von Kotlin verwenden und möchte, dass mein Ergebnis Something? , nicht Optional<Something>

lautet

Wie macht man das in Kotlin auf idiomatische Weise?

Aufruf von .orElse(null) auf Optional gibt mir tatsächlich Something? , aber es sieht nicht gut aus. Kotlin beschwert sich nicht, wenn ich val msg: Something = optional.orElse(null). schreibe ( msg wird als Something deklariert, nicht Something? - ich löse die Kompilierungsprüfung).

Ich benutze Kotlin 1.0.3

    
Bartosz Bilicki 04.08.2016, 12:28
quelle

2 Antworten

14

Erweitern Sie die Java-API um eine Methode zum Entpacken von Optional :

%Vor%

Benutze es dann wie du willst:

%Vor%

Weitere Informationen finden Sie Ссылка .

    
voddan 04.08.2016, 12:47
quelle
1

orNull() ist besser.

Zum Beispiel

%Vor%

Die Definition von orNull()

%Vor%     
Jake Lin 25.07.2017 05:21
quelle

Tags und Links