Java8 での Optional の使用と Kotlin での null 許容型の使用の比較の詳細

黄舟
リリース: 2017-09-19 10:15:41
オリジナル
1841 人が閲覧しました

この記事では、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();
ログイン後にコピー

もあります。これは Kotlin で最も一般的な Elvis 演算子です:


s?.length ?: 0
ログイン後にコピー

それに比べて、それを使い続ける理由は何でしょうか? Java 8 のオプションについて?

Kotlin の星のシンボル


??????????????????????????????????????
?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: 
?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.
ログイン後にコピー

以上がJava8 での Optional の使用と Kotlin での null 許容型の使用の比較の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート