栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java 8中Optional类型的有效用法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 8中Optional类型的有效用法

我会再摇摆一下。

这是有效用法吗?是的,从狭义上讲,它可以编译并产生您期望的结果。

这是预期用途吗?否。现在,有时候发现事情超出了最初的用途,如果行得通,那就太好了。但是对于

Optional
,我们发现通常情况下效果并不理想。

Optional
在我们的JavaOne
2015演讲“ Java 8 Lambda和Streams的API设计”中 ,我和BrianGoetz讨论了一些问题:

  • 链接到视频
  • 链接到幻灯片

的主要用途

Optional
如下:(幻灯片36)

Optional旨在为库方法 返回类型 提供 有限的 机制,在这种情况下,很明显需要表示“无结果”,并且使用该方法极 有可能导致错误

null

链接方法的能力

Optional
无疑非常酷,并且在某些情况下,它减少了条件逻辑带来的混乱。但是很多时候这是行不通的。一个典型的代码味道是不是使用方法链接的代码,
处理
Optional
一些方法返回,它 创建了
一个
Optional
从东西是空的,以连锁方式,避免条件语句。这是一个实际应用的示例(同样来自我们的演示,幻灯片42):

// BADString process(String s) {    return Optional.ofNullable(s).orElseGet(this::getDefault);}// GOODString process(String s) {    return (s != null) ? s : getDefault();}

使用该方法的

Optional
时间更长,并且大多数人发现它比常规代码更加晦涩难懂。不仅如此,它还会无缘无故地产生额外的垃圾。

底线:仅仅因为您 可以 做某事并不意味着您 应该 做。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414413.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号