Optional.isEmpty()即将加入Java吗?

JDK-8184693请求将方法isEmpty()添加到JDK 8引入的Optional类中。 调用Optional.isEmpty()等效于调用! Optional.isPresent() ! Optional.isPresent() 。 当前没有与JDK-8184693关联的JDK版本 ,但是正如最近在core-libs-dev邮件列表中的标题为“ RFR:8184693:(opt)add Optional.isEmpty ” 所示 ,它正在积极地工作。

JDK-8184693由Stuart Marks在2017年7月撰写,为添加Optional.isEmpty()提供了一些有趣的理由。 Marks指出:“通常,我们避免添加彼此简单逆的方法”,并举例说明String.isEmpty()和Collection.isEmpty()的存在,而没有任何随附的String.notEmpty()Collection.nonEmpty()对应项。 Marks认为这种方法在这些情况下效果很好,因为“空/非空不是根本”对他们来说:“对于这些对象,对空字符串(例如,搜索或附加它)或集合(例如, ,对其进行迭代)。”

在JDK-8184693 ,商标是确实有方法来明确表达双方的空虚和非空虚例子写道。 他写道:“但是,使用引用,null / non-null是非常基本的,我们有O bjects.isNull和Objects.nonNull 。” 因为这些示例的用法更像Optional的用法,所以Marks认为Optional应该在其当前的isPresent()方法旁边有一个isEmpty() isPresent()方法:“与Optional相似,空/当前二分法是非常基本的,因此应该isEmptyisPresent一起。”

JDK-8184693中的大多数证明文本已于本月(2018年4月)添加,并包含指向Peter Levart的2017年4月core-lib-devs邮件列表帖子“ Optional.isEmpty() ”的链接。 该错误的撰写总结了这篇文章开始的一些讨论。 在消息线程包括那些提供幽默 ,参考bikeshedding ,列表“ 大量的单行不使用布尔否定 ,”建议名称isNotPresent()或isAbsent() ,提供热情支持的的想法的Optional.isEmpty() ,并提醒“ 将方法添加到Optional的标准设置得很高 。”

前面提到的邮件列表消息“ RFR:8184693:(opt)add Optional.isEmpty ”引用了可供查阅的代码 。 拟议更改的Optional.java的“ Sdiff ”表明该方法已实现。 但是, 仍需要对OptionalDouble , OptionalLong和OptionalInt进行类似的更改 。

正如我在Java代码中使用Optional ,当我不需要使用Optional.isPresent()时,我会体会到时间。 但是,有时无法解决问题,我期待添加Optional.isEmpty()来代替!Optional.isPresent()Optional.isEmpty()是一件小事,但我相信它将使我的代码更易读和更流畅。 我希望它很快就会在我附近的JDK上发布。

翻译自: https://www.javacodegeeks.com/2018/04/optional-isempty-coming-to-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汉字查拼音微信小程序项目源码

微信公众号:创享日记 发送:查拼音 获取完整源码(微信开发者工具导入即可用) ①基本包括全部汉字 ②支持多音字 "治":["zh","ch"],"沺":["tin"],"油":["yu"…

高斯信道、单径Rayleigh信道和多径衰落信道下基带模型的多用户BFSK直接序列扩频系统MATLAB仿真(m序列、Gold序列和正交Gold序列)

结果预览 高斯 BFSK调制方式在采用m序列时,在高斯信道下的性能仿真结果如下: BFSK调制方式在采用正交Gold序列时,在高斯信道下的性能仿真结果如下: 单径Rayleigh 采用m序列时,在单径Rayleigh信道下的性能仿真结果如下:

随机抽奖转盘微信小程序项目源码

微信小程序:创享日记 发送:抽奖转盘 获取完整源码(微信开发者工具打开即可用) 可以容易自行修改,融入自己的项目里面。 function formatTime(date) {var year date.getFullYear()var month date.getMonth() 1var d…

基带模型下基于高阶累积量的MFSK信号的调制识别(代码和参考文献见CSDN同名资源)

信号模型:基带信号 文献一:吕新正. 利用高阶累积量实现数字调制信号的自动识别[J]. 2004. 核心思想:将基带信号进行微分后在计算|C21|和|C42|的值,定义特征参数 T 4 = ∣ C 42 ∣ / ∣ C 21 ∣ 2 T 4=\left|C_{42}\right| /\left|C_{21}\right|^{2}

Java 10 –局部变量类型推断

在本文中,我们将看到作为JEP 286的一部分提出的名为Local Variable Type Inference的Java10功能。 从Java的第一个版本开始,它是一种强类型语言,在这里我们需要提及每种变量数据类型。 我们所有人都感到Java是冗长的语言,并期望精…

简易计算器微信小程序项目源码

微信公众号:创享日记 发送:计算器 获取完整源码(微信开发者工具导入即可用) 以下可以忽略不看! 微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用…

MongoDB初学者教程

1. MongoDB简介 在本文中,我们提供了全面的MongoDB教程,该教程与基于Java的应用程序集成。 每当我们读到NoSQL数据库时,我们都需要知道为什么在SQL数据库运行良好时会开发它们。 NoSQL的基础是通过宽松的ACID (原子性,…

手势密码解锁微信小程序项目源码

微信公众号:创享日记 发送:手势密码 获取完整源码(导入微信开发者工具即可用) 以下可以忽略不看! 手势密码就是在手机触屏上设置一笔连成的九宫格图案,登录时画一下设定的图形。 运行程序,发…

带你一步一步实战分析缓冲区溢出漏洞攻击

关注公众号有惊喜【部分付费文章免费阅读,持续更新中…】 点击公众号底部【逆向杂记】可见 文件1 (A)描述此二进制文件提供的服务,不需要运行二进制文件来找出这一点。 (B)有可能对此二进制文件进行缓冲区溢出攻击,它在哪里?哪些…

memento模式_Java中的Memento设计模式-示例教程

memento模式记忆模式是行为设计模式之一 。 当我们要保存对象的状态以便以后可以恢复时,可以使用Memento设计模式。 使用Memento模式以这种方式实现该目的,即无法在对象外部访问对象的已保存状态数据,这可以保护已保存状态数据的完整性。 Me…

【JavaSE】Java进阶知识一(泛型详解,包括泛型方法,协变,逆变,擦除机制)

目录 泛型 1. 什么是泛型 2.泛型方法 3.通配符上界(泛型的协变) 4.通配符下界(泛型的逆变) 5.泛型的编译(擦除机制) 泛型 泛型:就是让一个类能适用于多个类型,就是在封装数据结…

Python实验三:Python程序设计之组合数据类型

微信公众号:创享日记 发送:python实验 获取完整清晰报告和源码以及其它资源 前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习…

MATLAB成形滤波、信号过信道

function [y, t] = rcosflt(x, Fd, Fs, type_flag, R, Delay, tol) 根升余弦滤波器 h = rcosdesign(alpha,6,Fs/RB,sqrt); % 根升余弦成形 h1 = rcosine(RB,Fs,fir/sqrt,alpha)

Java 10及更高版本的思考

大家好 Java 10于2018年3月20日发布。我认为许多软件团队将阻止升级。 从Java 8到Java 9的专业人员人数可能还更少。为什么会这样,原因是传统的障碍以及对应用程序服务器,框架甚至是云原生容器的依赖。 例如,如果您正在等待Spring Boot 2.0支…

Python爬虫和数据分析,石油原油加工产品产量数据处理分析

前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料) 微信公众号:创享日记 发送:原油分析 获取完整无水印报告P…

基于线性调频(LFM)信号分数阶傅里叶变换的多径时延估计

仿真信号 仿真信号为线性调频信号,信号采样率为2kHz。 线性调频(LFM)信号参数为:初始频率为300Hz,带宽400Hz,脉宽1s,调频斜率为 k ^ = − F s Δ t c o t ( p 0 ⋅ π 2 ) \hat

Python实验二:Python程序设计之结构与复用

微信公众号:创享日记 发送:python实验 获取完整清晰报告和源码以及其它资源 前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习…

基于x86汇编的飞机大战

运行结果 代码 ;宏定义一个显示函数(显示一组字符串) PUTS MACRO STRINGPUSH AXPUSH DXLEA DX, STRING ;LEA将内存地址的

Python实验四:Python程序设计之文件

微信公众号:创享日记 发送:python实验 获取完整清晰报告和源码以及其它资源 前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习…

【OFDM系列1】OFDM调制原理、参数、循环前缀、采样偏差、频偏及估计详解

关注公号【逆向通信猿】回复【OFDM】更精彩!!! OFDM调制解调原理 星座映射==>插入导频==>IFFT调制==>插入CP==>定时==>FFT解调==>导频均衡==>判决恢复 OFDM的正交条件[樊昌信,通信原理]: ①子载波 f k = k 2 T f_k=\frac{k}{2T}