この記事では、Java8 の Optional 型と Kotlin の nullable 型の使用方法の比較を、サンプル コードを通じて詳しく紹介します。この記事は、あらゆる人の学習や作業に役立つものです。必要な友達は、編集者をフォローして一緒に学びましょう。
この記事では主に、Java8 での Optional 型と Kotlin での null 許容型の使用に関する関連コンテンツを紹介します。これは参照と学習のために共有されます。以下では詳しく説明しません。 :
Java 8 では、Optional 型を使用して null 許容型を表現できます。
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(); } }
実行出力:
3 0
ただし、このようなコードはまだそれほどエレガントではありません。
Groovy は、安全なプロパティ/メソッド アクセス演算子 ?.
user?.getUsername()?.toUpperCase();
Swift にも同様の構文があり、Optional 型でのみ機能します。
Kotlin の Nullable 型
上記の Java 8 の例は、Kotlin で記述するとよりシンプルでエレガントです:
package com.easy.kotlin fun main(args: Array<String>) { println(strLength(null)) println(strLength("abc")) } fun strLength(s: String?): Int { return s?.length ?: 0 }
その中で、Optional<String>
の意味も表現する String? を使用します。もっと簡単ですか?
一目瞭然。
Java 8 Optional で提供される orElse
s.orElse("").length();
s?.length ?: 0
?????????????????????????????????????? ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.
以上がJava8 での Optional の使用と Kotlin での null 許容型の使用の比較の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。