激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java8中Optional類型和Kotlin中可空類型的使用對比

Java8中Optional類型和Kotlin中可空類型的使用對比

2021-01-05 11:00KotinChina編程社區 Java教程

這篇文章主要給大家介紹了關于Java8中Optional類型和Kotlin中可空類型的使用對比,文中通過示例代碼給大家介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

本文主要給大家介紹了關于Java8Optional類型和Kotlin中可空類型使用的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

在 Java 8中,我們可以使用 Optional 類型來表達可空的類型。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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();
 }
}

運行輸出:

?
1
2
3
0

但是,這樣的代碼,依然不是那么地優雅。

針對這方面 Groovy 提供了一種安全的屬性/方法訪問操作符 ?.

?
1
user?.getUsername()?.toUpperCase();

Swift 也有類似的語法, 只作用在 Optional 的類型上。

Kotlin 中的可空類型

上面 Java 8的例子,用 Kotlin 來寫就顯得更加簡單優雅了:

?
1
2
3
4
5
6
7
8
9
10
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

?
1
s.orElse("").length();

這個東東,在 Kotlin 是最最常見不過的 Elvis 運算符了:

?
1
s?.length ?: 0

相比之下,還有什么理由繼續用 Java 8 的 Optional 呢?

Kotlin 中的明星符號

?
1
2
3
??????????????????????????????????????
?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?:
?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.

示例源代碼工程Github 地址:

https://github.com/EasyKotlin/java_optional_vs_kotlin_nullable_type

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.jianshu.com/p/515244085e8e

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久久久久久久久久久国产精品 | 色诱亚洲精品久久久久久 | 一级黄色影片在线观看 | 娇喘在线| 精品国产观看 | 成人免费一区二区三区 | sesee99| 双性精h调教灌尿打屁股的文案 | 欧美四级在线观看 | 亚洲精品tv久久久久久久久久 | 538在线精品 | 欧美一级片 在线播放 | 91中文在线 | 国产精品一二区 | 一级黄色欧美 | 日韩视频在线观看免费视频 | 久久成年网站 | 欧美四级在线观看 | 国产免费大片视频 | 国产一区二区三区视频观看 | 久久久久久免费 | 久久精品久久久久 | 欧美一级色片 | 亚洲精品日韩色噜噜久久五月 | 国产精品午夜未成人免费观看 | 久久久tv | 日韩av电影免费在线观看 | 91精品最新国内在线播放 | 黄色网址免费入口 | 欧美成人精品欧美一级乱黄 | 精品国产91久久久久久浪潮蜜月 | 欧美性生活免费视频 | 日韩视频在线观看免费视频 | 七首小情歌泰剧在线播放 | 一级毛片电影网 | 亚洲国产精久久久久久久 | 亚洲第一黄色网 | 91网站免费在线观看 | 狠狠干天天| 久操福利视频 | 欧美日韩免费在线观看视频 |