本文主要给大家介绍了关于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 中的明星符号
?????????????????????????????????????? ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?: ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?. ?.
示例源代码工程Github 地址:
https://github.com/EasyKotlin/java_optional_vs_kotlin_nullable_type
本地下载地址:
http://xiazai./201709/yuanma/java_optional_vs_kotlin().rar
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# java8
# optional
# optional使用
# kotlin
# 可空类型
# 利用Java8 Optional类优雅如何地解决空指针问题
# Java8新特性之空指针异常的克星Optional类的实现
# Java8中Optional类的使用说明
# 相比之下
# 也有
# 本地下载
# 相关内容
# 说了
# 不多
# 给大家
# 可以使用
# 这篇文章
# 谢谢大家
# 用在
# 抛出
# 源代码
# 来写
# 只作
# 运算符
# 就显得
# 有疑问
# util
# static
相关文章:
建站之星如何优化SEO以实现高效排名?
如何在阿里云虚拟主机上快速搭建个人网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
网站制作话术技巧,网站推广做的好怎么话术?
网站制作软件有哪些,制图软件有哪些?
ppt制作免费网站有哪些,ppt模板免费下载网站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
b2c电商网站制作流程,b2c水平综合的电商平台?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
贸易公司网站制作流程,出口贸易网站设计怎么做?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何用AWS免费套餐快速搭建高效网站?
小程序网站制作需要准备什么资料,如何制作小程序?
个人摄影网站制作流程,摄影爱好者都去什么网站?
高防服务器如何保障网站安全无虞?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
建站之星代理平台如何选择最佳方案?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何高效配置IIS服务器搭建网站?
如何通过云梦建站系统实现SEO快速优化?
如何选择可靠的免备案建站服务器?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
已有域名如何免费搭建网站?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
建站主机数据库如何配置才能提升网站性能?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
独立制作一个网站多少钱,建立网站需要花多少钱?
,柠檬视频怎样兑换vip?
IOS倒计时设置UIButton标题title的抖动问题
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
招商网站制作流程,网站招商广告语?
金*站制作公司有哪些,金华教育集团官网?
定制建站策划方案_专业建站与网站建设方案一站式指南
如何用景安虚拟主机手机版绑定域名建站?
如何选择服务器才能高效搭建专属网站?
如何在阿里云购买域名并搭建网站?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何解决VPS建站LNMP环境配置常见问题?
如何批量查询域名的建站时间记录?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何在IIS中配置站点IP、端口及主机头?
网站制作企业,网站的banner和导航栏是指什么?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何设计高效校园网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。