ホームページ Java &#&チュートリアル Java8 での Optional の使用と Kotlin での null 許容型の使用の比較の詳細

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

Sep 19, 2017 am 10:15 AM
java8 kotlin optional

この記事では、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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue.js と Kotlin 言語を使用して Android アプリケーションを開発するためのヒント Vue.js と Kotlin 言語を使用して Android アプリケーションを開発するためのヒント Jul 31, 2023 pm 02:17 PM

Vue.js と Kotlin 言語を使用して Android アプリケーションを開発するためのヒント モバイル アプリケーションの人気とユーザー ニーズの継続的な成長により、Android アプリケーションの開発は開発者からますます注目を集めています。 Android アプリを開発する場合、適切なテクノロジー スタックを選択することが重要です。近年、Vue.js 言語と Kotlin 言語が Android アプリケーション開発の選択肢として徐々に人気になってきています。この記事では、Vue.js と Kotlin 言語を使用して Android アプリケーションを開発するためのテクニックをいくつか紹介し、対応するコード例を示します。 1. 最初に開発環境をセットアップする

Java 8で1年前または1年後の日付を計算するにはどうすればよいですか? Java 8で1年前または1年後の日付を計算するにはどうすればよいですか? Apr 26, 2023 am 09:22 AM

Java8 は、minus() メソッドを使用して 1 年前の日付または 1 年後の日付を計算し、1 年前の日付を計算します。 packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDateprevious Year=today.minus(1,ChronoUni

Kotlin プログラミング言語 12 を Debian にインストールする方法 Kotlin プログラミング言語 12 を Debian にインストールする方法 Feb 20, 2024 am 09:42 AM

Kotlin は、ソフトウェア開発の分野で大きな注目を集めている静的型付けプログラミング言語です。 Kotlin の簡潔でわかりやすい構文、Java との優れた互換性、豊富なツールのサポートにより、開発者に多くの利点がもたらされるため、多くの開発者が優先言語として Kotlin を選択しています。 Kotlin プログラミング言語 12Bookworm を Debian にインストールします ステップ 1。まず、既存のシステム パッケージを更新します。ターミナルを開き、次のコマンドを入力します。 sudoaptupdatesudoaptupgrade これらのコマンドは、利用可能なアップデートのリストを取得し、現在のパッケージをアップグレードして、システムが最新であることを確認します。ステップ2。 Javaをインストールします。 Java 仮想マシンの Kotlin (J

Java 関数と Kotlin 言語関数の違いは何ですか? Java 関数と Kotlin 言語関数の違いは何ですか? Apr 24, 2024 am 08:24 AM

Java 関数と Kotlin 関数の違い: 構文: Java 関数はパラメーターの型と名前を指定する必要がありますが、Kotlin は型を省略してラムダ式を使用できます。 パラメーター: Kotlin はより簡潔な構文を使用してパラメーターの型を省略できます。戻り値の型、デフォルトは Unit です。拡張関数: Kotlin は既存のクラスに新しい関数を追加できますが、Java は継承を通じて同様の関数を実装する必要があります。Kotlin はオブジェクト名を省略して、より簡潔な構文を使用できます。

Redis と Kotlin を使用して非同期タスク キュー関数を開発する方法 Redis と Kotlin を使用して非同期タスク キュー関数を開発する方法 Sep 21, 2023 am 10:58 AM

Redis と Kotlin を使用して非同期タスク キュー関数を開発する方法 はじめに: インターネットの発展に伴い、非同期タスクの処理がますます重要になってきました。開発プロセスでは、メールの送信やビッグデータの処理など、時間のかかるタスクに遭遇することがよくあります。システムのパフォーマンスとスケーラビリティを向上させるために、非同期タスク キューを使用してこれらのタスクを処理できます。この記事では、Redis と Kotlin を使用して単純な非同期タスク キューを開発する方法を紹介し、具体的なコード例を示します。 1. 非同期タスクとは何ですか?

Java 8を使用して1週間後の日付を計算するにはどうすればよいですか? Java 8を使用して1週間後の日付を計算するにはどうすればよいですか? Apr 21, 2023 pm 11:01 PM

Java8 で 1 週間後の日付を計算する方法 この例では、1 週間後の日付を計算します。 LocalDate 日付には時間情報が含まれません。その plus() メソッドは、日、週、月を追加するために使用されます。これらの時間単位は ChronoUnit クラスで宣言されます。 LocalDate も不変型なので、戻った後に変数を使用して値を割り当てる必要があります。 packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo08{publicstaticvoidmain(String[

Java で一般的に使用される Optional メソッドは何ですか? Java で一般的に使用される Optional メソッドは何ですか? May 09, 2023 am 11:34 AM

はじめに Java のオプションはコンテナ オブジェクトであり、null 以外の値を含めることも、空にすることもできます。その主な目的は、コードを記述するときに null ポインター例外を回避することです。 1. Optional オブジェクトの作成 of() メソッドを使用して、null 以外の値を含む Optional オブジェクトを作成できます (例: Optionaloptional=Optional.of("value"))。 ; ofNullable() メソッドを通じて作成することもできます。null 値を含む可能性のある Optional オブジェクト (例: Optionaloptional=Optiona)

Redis と Kotlin を使用して分散キュー関数を開発する方法 Redis と Kotlin を使用して分散キュー関数を開発する方法 Sep 20, 2023 am 10:09 AM

Redis と Kotlin を使用して分散キュー機能を開発する方法 はじめに: インターネットの急速な発展に伴い、分散システムはますます注目を集めています。分散キューは分散システムの重要なコンポーネントの 1 つであり、メッセージの非同期処理と分離を実現できます。この記事では、Redis と Kotlin を使用して単純な分散キューを開発する方法を紹介し、具体的なコード例を示します。 1. 概要 分散キューはメッセージを発行および消費することができ、メッセージが失われないようにします。分散システムでは、メッセージの発行と消費

See all articles