请不要使用它! = null为空

作者:诗意的凌峰| http://suo.im/5t3akh在没有空引的情况下使用Optional句子,您还喜欢以下代码在同一句子中为空吗?如果是这样,请看一下Optional相对于传统null确定的优势。 Java8的Optional为空,简化了空确定的操作为什么在传统类中为什么将Optional用于空确定?它是什么?您还看过上面的图片。
一旦代码量变大并且条件增加,代码将变得非常冗余且难以维护。然后,我们此时需要了解Optional。
Optional类是一个可以为null的容器对象。如果该值存在,则isPresent()方法将返回true,而调用get()方法将返回该对象。
可选的是容器:它可以保存T类型的值,或者仅可以为null。 Optional提供了许多有用的方法,因此我们无需显式检查空值。
Optional类的引入是对空指针异常的一个很好的解决方案。可选的方法,如下图所示,java8的可选判断,简化的空判断可选方法-图1 java8的可选判断,简化的空判断可选方法-图2需要多说一些关于别人的事情。
我相信你们所有人都会一目了然;如何使用它,我将使用代码进行演示,请继续。可选示例1.of:为非空值创建一个Optional。
of方法通过工厂方法创建Optional类。应该注意的是,创建对象时传入的参数不能为null。
如果传入参数为null,则将引发NullPointerException。可选可选= Optional.of(“ xiaoming”); //传入null并抛出NullPointerException可选o = Optional.of(null); 2.ofNullable:为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。
可选o1 = Optional.ofNullable(null); 3.isPresent:如果该值存在,则返回true,否则返回false。可选optiona2 = Optional.of(“ xiaoming”); System.out.println(optiona2.isPresent()); 4.get:如果有值,则返回可选值,不抛出NoSuchElementException。
可选o1 =可选.ofNullable(null); System.out.println(o1.get()); 5.ifPresent:如果Optional具有值,则调用使用者以进行处理,否则不处理Optional o1 = Optional.ofNullable(null); o1.ifPresent(s-> System.out.println(s)); 6.orElse:如果有一个值,则将其返回,否则返回其他指定值可选。 ofNullable(null); System.out.println(o1.orElse(“ output orElse”))); //输出orElse 7.。
orElseGet:orElseGet与orElse方法类似,不同之处在于获得的默认值。 orElse方法使用传入的字符串作为默认值,而orElseGet方法可以接受Supplier接口的实现以生成默认值。
System.out.println(o1.orElseGet(())->“默认值”)); //默认值*注意:orElse和orElseGet看起来很相似,但实际上它们是完全不同的;请看以下示例Shop shop = null; System.out.println(“ testorElse”); Optional.ofNullable(shop).orElse(createNew()); System.out.println(“ testorElseGet”);可选。 ofNullable(shop).orElseGet(()-> createNew()); // createNewprivate静态Shop createNew(){System .out.println(“ create new”); return new Shop(“ stockings”,50);} //输出:测试orElsecreate newtest orElseGetcreate newShop shop = new Shop(“长袜”,100); System.out。
println(“ testorElse”); Optional.ofNullable(shop).orElse(createNew()); System.out.println(“ testorElseGet”); Optional.ofNullable(shop).orElseGet(()-> createNew( )); ///输出测试orElsecreate newtest orElseGet从上面的两个示例中,您可以看到,当Optional为空时,orElse和orElseGet差别不大,但是当Optional具有值时,orElse仍将调用该方法来创建该对象,而orElseGet没有。该方法将再次被调用;当我们处理的业务数据量很大时,两者的性能将有很大的不同。
8.orElseThrow:如果有值,则将其返回,否则抛出由供应商接口创建的异常。可选o1 =可选.ofNullable(null); try {o1.orElseThrow(()-> newException(“ Exception!”)));} catch(Exception e){System.out.println(“ info:” ; + e。
getMessage());} //输出:info:异常! 9.map:如果有一个值,则执行它并调用映射函数以获取返回值。如果返回值不为null,则创建一个Optional,它包含映射的返回值作为map方法的返回值,否则返回一个空的Optional。
可选可选= Optional.of(“ xiaoming”);字符串s = o。

公司: 深圳市捷比信实业有限公司

电话: 0755-29796190

邮箱: ys@jepsun.com

产品经理: 汤经理

QQ: 2057469664

地址: 深圳市宝安区翻身路富源大厦1栋7楼

微信二维码

更多资讯

获取最新公司新闻和行业资料。

  • 现货SMC压力开关ISE30A-01-N-L: 高性能与可靠性的结合 现货供应的SMC压力开关ISE30A-01-N-L是一种高性能的自动化控制元件,广泛应用于各种工业领域。这款压力开关具备精确的压力检测功能,能够在系统压力达到预设值时迅速做出反应,从而实现对机械设备的有效控制。ISE30A-01-N-L型号...
  • PR(L)30开关:功能与应用场景概述 在探讨PR(L)30开关时,我们实际上是在讨论一种特定类型的电气设备,它被广泛应用于各种工业和商业环境中。PR(L)30开关可能是某种型号或类别的开关,但由于信息有限,这里只能假设其功能和应用场景。通常来说,这种开...
  • 万用表测电阻显示0.L的原因解析 当使用万用表测量电阻时,如果显示屏上出现“0.L”的读数,这通常意味着被测电阻值小于万用表能够准确显示的最小值。具体来说,“0.L”中的“L”代表低(Low)的意思,表示电阻值过低以至于超出了当前量程设置下的分辨率...
  • I2C多任务器与FM3 CY9BFx2xK/L/M MCU协同应用解析 I2C多任务器与FM3 CY9BFx2xK/L/M MCU技术融合概述在现代嵌入式系统设计中,I2C总线作为低速、低成本的串行通信协议,被广泛应用于传感器、存储器、显示模块等外设连接。然而,当系统中需要连接多个I2C设备时,单一主控的资源限...
  • PTTC聚鼎PG38E-L气体放电管参数及应用领域 PTTC聚鼎PG38E-L气体放电管是一种高效能的过电压保护器件,广泛应用于通信设备、工业控制设备、安防系统等领域。该气体放电管以其优越的性能和稳定的特性,在电力系统中起到了关键的保护作用。以下是关于PTTC聚鼎PG38E-L气体...
  • TSS管与聚鼎PXXXX L的应用与比较 在电力电子和电路保护领域,TSS(Transient Voltage Suppression)管是一种非常重要的元件,它能够有效地抑制瞬态电压,保护电路中的其他敏感元件免受损害。聚鼎科技(Protection Devices International Ltd.)作为这一领域的知名制造商,其...
  • PTTC聚鼎PG28E-L气体放电管技术参数与应用领域 在现代电子设备中,保护电路免受雷击和电压浪涌的影响至关重要,PTTC聚鼎PG28E-L气体放电管正是为此设计的高效防护元件。这款气体放电管以其卓越的性能和广泛的应用领域,在众多同类产品中脱颖而出。PG28E-L气体放电管具备...
  • TSS管与聚鼎PXXXX L、XPL vs XGL电感性能对比分析 引言TSS管(Thin-Sheet Sensor Tube)作为现代电子设备中常见的信号传输与滤波元件,其性能直接影响系统的稳定性与效率。与此同时,聚鼎科技推出的PXXXX系列电感,包括L型、XPL型与XGL型,在高频应用中表现突出。本文将从材料特性...
  • PTTC聚鼎PG38E-L气体放电管性能解析与应用优势深度探讨 PTTC聚鼎PG38E-L气体放电管核心特性分析PTTC聚鼎PG38E-L气体放电管是一款专为高电压浪涌保护设计的高性能器件,广泛应用于通信、电力系统及工业控制设备中。其主要特点包括:高击穿电压:标准击穿电压可达3800V,有效应对瞬态...
  • PCH/L自动压力开关:工业安全与效率的保障 PCH/L自动压力开关是一种精密的设备,用于自动控制和监测系统中的压力变化。这种开关广泛应用于各种工业领域,如制造业、石油化工、电力系统等,以确保系统的安全运行和提高效率。PCH/L自动压力开关的特点在于其高度的灵...
  • PTTC聚鼎PG28E-L气体放电管:高性能过压保护解决方案 PTTC聚鼎PG28E-L气体放电管简介PTTC聚鼎PG28E-L是一款专为高可靠性电气系统设计的气体放电管(GDT),广泛应用于通信设备、电力系统、工业控制及安防监控等领域。其核心优势在于快速响应、高耐冲击电流和优异的绝缘性能,是实...
  • 基于CY9BFx2xK/L/M MCU的I2C多任务器系统设计与优化策略 基于FM3 CY9BFx2xK/L/M MCU的I2C多任务器系统设计深度剖析随着物联网(IoT)设备复杂度提升,单片机系统面临越来越多的外设接入需求。采用I2C多任务器配合高性能MCU是当前主流解决方案之一。本文以富士通FM3系列中的CY9BFx2xK/L/M MCU为...
  • 深入解读:为何在设计中更倾向使用N沟道MOS管?关键优势分析 背景:为什么“偏爱”N沟道MOS管?在众多半导体器件中,尽管P沟道MOS管同样重要,但在主流集成电路设计中,特别是数字逻辑和高速开关电路中,N沟道MOS管(NMOS)常常被优先选用。这并非偶然,而是基于其物理特性和工程实践...
  • 聚鼎PXXXX系列电感:L型、XPL型与XGL型深度解析与选型指南 前言:为何要区分PXXXX系列的不同型号?聚鼎科技推出的PXXXX系列电感,虽同属一个产品线,但在设计目标、电气参数与适用领域上存在显著差异。正确识别L、XPL、XGL三种型号的特性,是实现电路性能最优化的关键。本文将从技术...
  • Wi-Fi 6双频天线优势详解:为何它成为新一代网络设备标配? Wi-Fi 6双频天线:构建高效、稳定无线网络的核心组件在当前万物互联的时代,网络连接的稳定性与速度成为用户体验的关键。Wi-Fi 6双频天线凭借其在2.4GHz与5GHz双频段上的卓越表现,正迅速成为智能手机、路由器、智能电视等主...
  • 长寿命JY系列与HY系列核心优势解析:为何它们成为工业首选? 长寿命JY系列与HY系列的核心特点概述在现代工业设备中,零部件的耐用性与可靠性直接决定了生产效率和维护成本。长寿命JY系列与长寿命HY系列凭借其卓越的设计理念与材料工艺,已成为众多行业中的首选解决方案。这两款系列...
  • 为什么使用并联电容器来提高功率因数而不是串联 为什么使用并联电容器来提高功率因数而不是串联为了保证补偿后的设备仍能正常工作。串联电容器和并联电容器之间电路结构的差异导致负载器件的操作状态不同。1.如果并联电路的电压相同,设备仍享有与补偿前相同的额定电...
  • 深入解读:逆变器空调为何区分AR与AG?实际应用有何不同? 逆变器空调中AR与AG的实际应用对比分析在选购逆变器空调时,消费者常常面对“AR”与“AG”两种型号感到困惑。虽然它们都属于变频空调范畴,但在技术定位、应用场景和性能指标上各有侧重。本文将从多个维度进行深度剖析,...
  • 销售瓦斯时配套使用空气压力开关的重要性 在工业和家庭应用中,确保安全至关重要。销售瓦斯设备时,配套的保护措施不可或缺,例如使用空气压力开关。这种开关能在气体压力超出安全范围时立即触发警报或关闭系统,有效预防潜在风险。对于那些依赖瓦斯作为能源...
  • 深入解析DIOFET与GaN MOSFET:为何它们正在颠覆传统硅基功率器件? 引言:从“硅时代”迈向“新材料时代”在现代电子系统中,功率转换效率直接决定了设备的能耗水平与散热设计复杂度。过去几十年,硅基MOSFET几乎垄断了整个功率半导体市场。然而,随着能源效率标准日趋严苛,以及对小型...