Java8中Optional与Kotlin中可空类型的使用对比详情
这篇文章主要给大家介绍了关于Java8中Optional类型和Kotlin中可空类型的使用对比,文中通过示例代码给大家介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
本文主要给大家介绍了关于Java8中Optional类型和Kotlin中可空类型使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:
在 Java 8中,我们可以使用 Optional 类型来表达可空的类型。
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 中的可空类型
上面 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 }
其中,我们使用 String? 同样表达了 Optional<String>
的意思,相比之下,哪个更简单?
一目了然。
还有Java 8 Optional 提供的orElse
s.orElse("").length();
这个东东,在 Kotlin 是最最常见不过的 Elvis 运算符了:
s?.length ?: 0
相比之下,还有什么理由继续用 Java 8 的 Optional 呢?
Kotlin 中的明星符号
?????????????????????????????????????? ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.
Atas ialah kandungan terperinci Java8中Optional与Kotlin中可空类型的使用对比详情. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Beberapa petua untuk membangunkan aplikasi Android menggunakan bahasa Vue.js dan Kotlin Dengan populariti aplikasi mudah alih dan pertumbuhan berterusan keperluan pengguna, pembangunan aplikasi Android telah menarik lebih banyak perhatian daripada pembangun. Apabila membangunkan apl Android, memilih tindanan teknologi yang betul adalah penting. Dalam beberapa tahun kebelakangan ini, bahasa Vue.js dan Kotlin secara beransur-ansur menjadi pilihan popular untuk pembangunan aplikasi Android. Artikel ini akan memperkenalkan beberapa teknik untuk membangunkan aplikasi Android menggunakan bahasa Vue.js dan Kotlin serta memberikan contoh kod yang sepadan. 1. Sediakan persekitaran pembangunan pada permulaan

Java8 mengira tarikh setahun yang lalu atau setahun kemudian menggunakan kaedah tolak() untuk mengira tarikh setahun yang lalu packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDatepreviousYear=today.minus(1,ChronoUni

Kotlin ialah bahasa pengaturcaraan bertaip statik yang telah menarik perhatian besar dalam bidang pembangunan perisian. Sintaksnya yang ringkas dan mudah difahami, keserasian yang baik dengan Java dan sokongan alat yang kaya memberikan banyak kelebihan kepada pembangun, jadi ramai pembangun memilih Kotlin sebagai bahasa pilihan mereka. Pasang Bahasa Pengaturcaraan Kotlin 12Bookworm pada Debian Langkah 1. Mulakan dengan mengemas kini pakej sistem sedia ada. Buka terminal dan masukkan arahan berikut: sudoaptupdatesudoaptupgrade Perintah ini akan mendapat senarai kemas kini yang tersedia dan naik taraf pakej semasa, memastikan sistem anda dikemas kini. Langkah 2. Pasang Java. Kotlin dalam Mesin Maya Java (J

Cara menggunakan Redis dan Kotlin untuk membangunkan fungsi baris gilir tugas tak segerak Pengenalan: Dengan pembangunan Internet, pemprosesan tugas tak segerak telah menjadi semakin penting. Semasa proses pembangunan, kami sering menghadapi beberapa tugas yang memakan masa, seperti menghantar e-mel, memproses data besar, dsb. Untuk meningkatkan prestasi dan kebolehskalaan sistem, kami boleh menggunakan baris gilir tugas tak segerak untuk memproses tugasan ini. Artikel ini akan memperkenalkan cara menggunakan Redis dan Kotlin untuk membangunkan baris gilir tugas tak segerak yang mudah dan menyediakan contoh kod khusus. 1. Apakah tugas tak segerak?

Perbezaan antara fungsi Java dan Kotlin: Sintaks: Fungsi Java perlu menentukan jenis dan nama parameter, manakala Kotlin boleh menghilangkan jenis dan menggunakan ungkapan lambda: Kotlin boleh meninggalkan jenis parameter menggunakan sintaks yang lebih ringkas: Kotlin boleh meninggalkan nilai pulangan Jenis, lalai ialah fungsi sambungan Unit: Kotlin boleh menambah fungsi baru pada kelas sedia ada, manakala Java perlu melaksanakan fungsi yang serupa melalui pewarisan kaedah panggilan: Kotlin boleh meninggalkan nama objek dan menggunakan sintaks yang lebih ringkas;

Cara mengira tarikh seminggu kemudian dalam Java8 Contoh ini akan mengira tarikh seminggu kemudian. Tarikh LocalDate tidak mengandungi maklumat masa kaedah tambah() digunakan untuk menambah hari, minggu dan bulan Kelas ChronoUnit mengisytiharkan unit masa ini. Memandangkan LocalDate juga merupakan jenis yang tidak boleh diubah, anda mesti menggunakan pembolehubah untuk menetapkan nilai selepas kembali. packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo08{publicstaticvoidmain(String[

Prakata Pilihan dalam Java ialah objek bekas, yang boleh mengandungi nilai bukan nol atau kosong. Tujuan utamanya adalah untuk mengelakkan pengecualian penuding nol semasa menulis kod. Penggunaan lengkap Optional dalam java8 adalah seperti berikut: 1. Cipta objek Pilihan Anda boleh mencipta objek Pilihan yang mengandungi nilai bukan nol melalui kaedah of(), contohnya: Optionaloptional=Optional.of("value"). ; Ia juga boleh dibuat melalui kaedah ofNullable() Objek Pilihan yang mengandungi nilai mungkin nol, contohnya: Optionaloptional=Optiona

Cara menggunakan Redis dan Kotlin untuk membangunkan fungsi baris gilir teragih Pengenalan: Dengan perkembangan pesat Internet, sistem teragih telah menarik lebih banyak perhatian. Barisan teragih adalah salah satu komponen penting sistem teragih, yang boleh merealisasikan pemprosesan tak segerak dan penyahgandingan mesej. Artikel ini akan memperkenalkan cara untuk membangunkan baris gilir teragih mudah menggunakan Redis dan Kotlin, dan memberikan contoh kod khusus. 1. Gambaran Keseluruhan Barisan gilir yang diedarkan boleh menerbitkan dan menggunakan mesej dan memastikan bahawa mesej tidak hilang. Dalam sistem yang diedarkan, penerbitan dan penggunaan mesej
