Konvertierung zwischen Kotlin nullable und Java Optional

nullable => Optional

Wenn Sie Code in Kotlin schreiben, müssen Sie ihn in Java Optional konvertieren. Verwenden Sie in diesem Fall "Optional.ofNullable", um es in "Optional" zu konvertieren. Sie können auch "Optional.of" verwenden, wenn es nicht nullbar ist.

Stichprobe

    class SecurityAuditorAware: AuditorAware<Long> {
        override fun getCurrentAuditor(): Optional<Long> {
            val authentication = SecurityContextHolder.getContext().authentication

            if (authentication == null || !authentication.isAuthenticated) {
                return Optional.ofNullable(null)
            }

            return Optional.ofNullable((authentication.principal as UserDetail?)?.user?.id)
        }
    }

Aus Javas Sicht sieht Kotlins Nullable genauso aus wie nicht, also "Optional <Long?>", "Optional ", "Optional ?" Und "Optional <Long?>?" Ist dasselbe. Sie können diese vier Muster für den Rückgabetyp "getCurrentAuditor ()" im Beispiel verwenden.

Optional => nullable / not-nullable

Wenn Sie "findById" im Spring 5-Repository verwenden, wird "Optional " zurückgegeben. In solchen Fällen möchten Sie möglicherweise den Inhalt aus "Optional" extrahieren, um einen Wert an Kotlin zu übergeben.

optionalValue.get() => not-nullable
optionalValue.orElse(null) => nullable

Andere

Für Werte vom Typ "Optional" stehen viele andere Methoden zur Verfügung.

Es wurde im nächsten Artikel ausführlich beschrieben. https://qiita.com/tasogarei/items/18488e450f080a7f87f3

Recommended Posts

Konvertierung zwischen Kotlin nullable und Java Optional
Unterschiede zwischen "Anfänger" Java und Kotlin
Beziehung zwischen Kotlin- und Java-Zugriffsmodifikatoren
[Für Anfänger] Unterschied zwischen Java und Kotlin
[Java] Unterschied zwischen == und gleich
Konvertieren Sie mit Moshi zwischen Java-Objekten und JSON
Gegenseitige Umwandlung zwischen Funktion und Verbraucher
[Java] Unterschied zwischen Hashmap und HashTable
[JAVA] Unterschied zwischen Abstract und Interface
[Java] Beziehung zwischen H2DB und JDBC
[Java] Unterschied zwischen Array und ArrayList
Unterschiede zwischen Java und .NET Framework
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
Unterschied zwischen final und Immutable in Java
Java-Studie Nr. 3 (Typkonvertierung und Befehlsausführung)
[Java] Unterschiede zwischen Instanzvariablen und Klassenvariablen
Ein Java-Ingenieur verglich Swift, Kotlin und Java.
[Hinweis] Zusammenarbeit zwischen Java und DB (Basic)
[Java] Unterschied zwischen Intstream-Bereich und rangeClosed
[Java] Berechnungsmechanismus, Operatoren und Typkonvertierung
Unterschied zwischen int und Integer in Java
HashMap # putAll () verhält sich zwischen Java 7 und Java 8 unterschiedlich
[Java] Verstehe den Unterschied zwischen List und Set
Java-Typkonvertierung
Kotlin-Funktionen und Lambdas zum Senden an Java-Entwickler
Java switch Anweisung und break, Kotlin beim Ausdruck ...
Optionale Typkonvertierung und Rückgabewert (Nullunterstützung)
Java Optionaler Typ
Unterschied zwischen next () und nextLine () in Java Scanner
Java 8 studieren (optional)
Fassen Sie die Unterschiede zwischen C # - und Java-Schrift zusammen
Java und JavaScript
XXE und Java
Unterscheiden Sie in Java zwischen positiven und negativen Zahlen
[Java] Unterschied zwischen "endgültiger Variable" und "unveränderlichem Objekt"
[Java] Optionales Memorandum
Java 9 Optional :: stream
Organisieren Sie den Unterschied im Schreibkomfort zwischen dem Java-Lambda-Ausdruck und dem Kotlin-Lambda-Ausdruck.
Bitte beachten Sie die Aufteilung (Aufteilung) von Java Kotlin Int und Int
Java-Sprache aus der Sicht von Kotlin und C #
Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
[Java] Unterschied zwischen statischem final und final in Mitgliedsvariablen
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Ich möchte Bildschirmübergänge mit Kotlin und Java machen!
[Java] [Kotlin] Rufen Sie valueOf und Werte von Enum generisch auf
[Java-Anfänger] Unterschied zwischen Länge und Länge () ~ Ich weiß nicht ~
Getter und Setter (Java)
[Java] Thread und ausführbar
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
Java-Dokument von Java anzeigen Optional
[Java, Kotlin] Typabweichung
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
Wechseln Sie zwischen JDK 7 und JDK 8