Optional,Kotlin,Java8
Java-java教程
这篇文章主要给大家介绍了关于Java8中Optional类型和Kotlin中可空类型的使用对比,文中通过示例代码给大家介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。拓展训练网站源码,vscode 误删,ubuntu终端配色,容器 tomcat,sqlite 取行号,百度云 文件删除 还在服务器上吗,pdf展示插件,前端锅盖框架推荐,python 爬虫是什么,php走势,白牙seo,根发艺网站,wordpress此网页包含重定向循环,中英网站模板,商品管理系统页面模板,erp金蝶仓库管理系统,mysql数据库易语言应用程序lzw
本文主要给大家介绍了关于Java8中Optional类型和Kotlin中可空类型使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:众筹 手机端web 源码,vscode查看git代码,ubuntu黑屏字符,tomcat的替换类,从csv导入sqlite3,卫生间里黑色软体爬虫是什么,授权查询php,seo快排的原理,采集视频网站源码,儿童动漫app下载网站模板lzw
在 Java 8中,我们可以使用 Optional 类型来表达可空的类型。商城云交易源码,vscode部署智能合约,电脑使用ubuntu,关闭tomcat占用端口,sqlite3获取记录行数,眼睛里有很多小爬虫怎么办,php 数组中重复值,seo外包推广公司价格,精品课程网站源码,微信好的模板下载lzw
package com.easy.kotlin;import java.util.Optional;import static java.lang.System.out;/** * Optional.ofNullable - 允许传递为 null 参数 * Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException * Optional 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 s) { return s.orElse("").length(); }}
运行输出:
30
但是,这样的代码,依然不是那么地优雅。
针对这方面 Groovy 提供了一种安全的属性/方法访问操作符 ?.
user?.getUsername()?.toUpperCase();
Swift 也有类似的语法, 只作用在 Optional 的类型上。
Kotlin 中的可空类型
上面 Java 8的例子,用 Kotlin 来写就显得更加简单优雅了:
package com.easy.kotlinfun main(args: Array) { println(strLength(null)) println(strLength("abc"))}fun strLength(s: String?): Int { return s?.length ?: 0}
其中,我们使用 String? 同样表达了 Optional
的意思,相比之下,哪个更简单?
一目了然。
还有Java 8 Optional 提供的orElse
s.orElse("").length();
这个东东,在 Kotlin 是最最常见不过的 Elvis 运算符了:
s?.length ?: 0
相比之下,还有什么理由继续用 Java 8 的 Optional 呢?
Kotlin 中的明星符号
???????????????????????????????????????: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.