java – 使用Optional.ofNullable作为三元运算符的替代是一种好的做法吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用Optional.ofNullable作为三元运算符的替代是一种好的做法吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1238字,纯文字阅读大概需要2分钟。
内容图文
![java – 使用Optional.ofNullable作为三元运算符的替代是一种好的做法吗?](/upload/InfoBanner/zyjiaocheng/705/4fcc4612cafa4be385e3d02917fdf43f.jpg)
考虑这个表达式的用法:
String hi = Optional.ofNullable(sayHi()).orElse("-");
这有效地对应于这个三元表达式:
String hi = sayHi() != null ? sayHi() : "-";
使用Optional.ofNullable和方法调用是一种好习惯吗?或者只是额外的详细编码?
我认识到Optional.ofNullable实际上创建了一个变量,并避免两次调用sayHi()方法.为了避免这个问题,你实际上可以创建一个额外的变量,但这会增加三元选项的详细程度:
String hi = sayHi();
hi = hi != null ? hi : "-";
另一方面,Optional.ofNullable在hi不是null的情况下创建一个额外的Optional对象.所以肯定会有更多的开销.
因此,使用这种类型的构造来替换三元构造函数似乎有一些利弊.
顺便说一下:这是Optional.ofNullable的Java 8实现:
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}
解决方法:
每当我想到为特定目的使用Optional API时,我总是提醒自己它打算做什么以及为什么它被带入JDK,即
Optional in intended to provide a limited mechanism for library method
return types where there is a clear need to represent “no result” and
where using null for this is overwhelmingly likely to cause errors – Stuart Marks
可选主要关注可能有也可能没有返回值的返回类型.
过度使用此构造就像在您的这个特定示例中一样,只会导致额外的内存分配和GC开销.
我会保持简单,而是:
String hi = sayHi();
if(hi == null) hi = “-“;
...
内容总结
以上是互联网集市为您收集整理的java – 使用Optional.ofNullable作为三元运算符的替代是一种好的做法吗?全部内容,希望文章能够帮你解决java – 使用Optional.ofNullable作为三元运算符的替代是一种好的做法吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。