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

isempty

isempty

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

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

JDK-8184693 ,商标是确实有方法来明确表达双方的空虚和非空虚例子写道。 他写道:“但是,使用引用,null / non-null是非常基本的,我们有O bjects.isNullObjects.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 ”表明该方法已实现。 但是,仍然需要OptionalDoubleOptionalLongOptionalInt进行类似的更改

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

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

isempty

优化这段代码: //获取慢病信息 List<SlowDiseasePatInfo> slowDiseasePattInfosList = new ArrayList<>(); slowDiseasePattInfosList.add(new SlowDiseasePatInfo(slowDiseaseId,"普通慢病报卡")); Result result = detail(slowDiseasePattInfosList); if (null == result.getData()){ return ResultGenerator.genFailedResult("未查到需要上报的数据"); } List<SlowDiseasePatientInfo> list = (List<SlowDiseasePatientInfo>)result.getData(); String outpatNum = list.get(0).getOutpatNum().isEmpty() ? list.get(0).getInpatNum() : list.get(0).getOutpatNum(); //获取患者的院区 String hospitalCode = emrSlowDiseaseDao.getHospitalCode(outpatNum); String unitCode = ConstantEnum.GW_CZ.getValue().equals(hospitalCode) ? ConstantEnum.GW_CZDWBM.getValue() : ConstantEnum.GW_YHDWBM.getValue(); String regCode = ConstantEnum.GW_CZ.getValue().equals(hospitalCode) ? ConstantEnum.GW_CZZCM.getValue() : ConstantEnum.GW_YHZCM.getValue(); Map<String,Object> reqMap = new HashMap<>(); reqMap.put("slowInfo",list.get(0)); reqMap.put("unitCode",unitCode); reqMap.put("regCode",regCode); String reqInfo = MessageUtil.select(reqMap, "/velocity/slowdisease.vm"); Document document = DocumentHelper.parseText(StringEscapeUtils.unescapeJava(reqInfo.replace("xmlns=\"urn:hl7-org:v3\"", ""))); reqInfo = XmlUtils.documentToStr(document); logger.info("请求慢病接口开始{}", reqInfo); String res = HttpClientUtil.sendWebServiceForLis(webservice + "SlowSfqUploadService/SlowSfqUploadService?WSDL", reqInfo.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>","")); logger.info("请求慢病接口结束{}", res); return ResultGenerator.genOkResult(res);
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值