国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java8中Optional類型和Kotlin中可空類型的使用對(duì)比

Java8中Optional類型和Kotlin中可空類型的使用對(duì)比

2021-01-05 11:00KotinChina編程社區(qū) Java教程

這篇文章主要給大家介紹了關(guān)于Java8中Optional類型和Kotlin中可空類型的使用對(duì)比,文中通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

本文主要給大家介紹了關(guān)于Java8Optional類型和Kotlin中可空類型使用的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹:

在 Java 8中,我們可以使用 Optional 類型來(lái)表達(dá)可空的類型。

?
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 參數(shù)
 * Optional.of - 如果傳遞的參數(shù)是 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();
 }
}

運(yùn)行輸出:

?
1
2
3
0

但是,這樣的代碼,依然不是那么地優(yōu)雅。

針對(duì)這方面 Groovy 提供了一種安全的屬性/方法訪問(wèn)操作符 ?.

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

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

Kotlin 中的可空類型

上面 Java 8的例子,用 Kotlin 來(lái)寫(xiě)就顯得更加簡(jiǎn)單優(yōu)雅了:

?
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? 同樣表達(dá)了 Optional<String>的意思,相比之下,哪個(gè)更簡(jiǎn)單?

一目了然。

還有Java 8 Optional 提供的orElse

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

這個(gè)東東,在 Kotlin 是最最常見(jiàn)不過(guò)的 Elvis 運(yùn)算符了:

?
1
s?.length ?: 0

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

Kotlin 中的明星符號(hào)

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

示例源代碼工程Github 地址:

https://github.com/EasyKotlin/java_optional_vs_kotlin_nullable_type

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色免费在线观看网址 | 最好的2019中文大全在线观看 | 国产精品欧美一区二区三区 | 国产麻豆乱码精品一区二区三区 | www.涩涩视频 | 欧美一区二区三区四区不卡 | 精品一区二区三区免费 | 久久亚洲天堂 | 亚洲成人在线播放视频 | 美女一级 | 欧美一级在线 | 亚洲一二 | 国产日韩精品一区二区 | 欧美伦理一区二区三区 | 亚洲激情视频 | 国产成人精品一区二区 | 亚洲色图p| 日韩电影专区 | 日本不卡高字幕在线2019 | 日韩精品一区二区三区四区 | 欧美日本精品 | 精品国产一区二区三区忘忧草 | 精品久久久久久国产 | 成人精品久久久 | 精品少妇一区二区三区日产乱码 | 亚洲一区视频在线 | a久久| 久久一二区 | 日韩精品一区在线视频 | 四虎永久免费 | 亚洲欧美影院 | 国产日韩精品久久 | 亚洲高清视频在线 | 久久免费99精品久久久久久 | 欧美视频区 | 日韩电影一区二区三区 | 亚洲成人一区二区三区 | 久久与欧美| 欧美日韩精品一区二区三区蜜桃 | 成人在线免费观看 | 欧美成人影院 |