Dieser Artikel stellt Ihnen hauptsächlich den Vergleich der Verwendung optionaler Typen in Java8 und nullbarer Typen in Kotlin vor. Der Artikel führt Sie ausführlich anhand von Beispielcode ein, der einen gewissen Referenzlernwert für das Studium oder die Arbeit jedes Einzelnen hat. Freunde, die es brauchen, folgen Sie bitte dem Herausgeber, um gemeinsam zu lernen.
Dieser Artikel stellt Ihnen hauptsächlich den relevanten Inhalt über die Verwendung optionaler Typen in Java8 und nullbarer Typen in Kotlin vor. Ich werde im Folgenden nicht viel sagen, werfen wir einen Blick darauf in der ausführlichen Einführung:
In Java 8 können wir den optionalen Typ verwenden, um nullfähige Typen auszudrücken.
package com.easy.kotlin; import java.util.Optional; import static java.lang.System.out; /** * Optional.ofNullable - 允许传递为 null 参数 * Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException * Optional<String> b = Optional.of(s); */ public class Java8OptionalDemo { public static void main(String[] args) { out.println(strLength(Optional.of("abc"))); out.println(strLength(Optional.ofNullable(null))); } static Integer strLength(Optional<String> s) { return s.orElse("").length(); } }
Ausgabe ausführen:
3 0
Ein solcher Code ist jedoch immer noch nicht so elegant.
In dieser Hinsicht bietet Groovy einen sicheren Eigenschafts-/Methodenzugriffsoperator?.
user?.getUsername()?.toUpperCase();
Swift hat auch eine ähnliche Syntax, die nur funktioniert der Typ Optional.
Nullable-Typen in Kotlin
Das obige Java 8-Beispiel ist einfacher und eleganter, wenn es in Kotlin geschrieben wird:
package com.easy.kotlin fun main(args: Array<String>) { println(strLength(null)) println(strLength("abc")) } fun strLength(s: String?): Int { return s?.length ?: 0 }
Unter Für sie verwenden wir String?, was auch die Bedeutung von Optional<String>
ausdrückt. Welches ist im Vergleich einfacher?
Auf einen Blick klar.
Es gibt auch das orElse
s.orElse("").length();
, das von Java 8 optional bereitgestellt wird. Dieses Zeug ist der häufigste Elvis-Operator in Kotlin:
s?.length ?: 0
Welchen Grund gibt es im Vergleich dazu, das Optional von Java 8 weiterhin zu verwenden?
Sternsymbole in Kotlin
?????????????????????????????????????? ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.
Das obige ist der detaillierte Inhalt vonVergleichsdetails zur Verwendung von Optional in Java8 und nullbaren Typen in Kotlin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!