从Java应用程序中消除Null指针异常

这篇文章简要介绍了Java 8的最有用但“毫不费力”的功能。

程序员花了无尽的时间来尝试纠正最常见但最危险的错误之一-空指针异常。

空指针异常

空指针异常可能导致我们的应用程序意外中断,并且很难预先检测到。

在许多情况下,当我们使用外部库和API时,由于库/ API返回的值,空指针可能会出现。

由于这个原因,异常处理和从异常中进行逻辑恢复对于程序员来说是一项复杂的任务。

这需要高级程序员来检查代码,并定义控制流以进行错误恢复。

在Java 8中,添加了新的API –即“ Optional ”类,以帮助开发人员创建一个框架,以完全避免使用空指针,并为其应用程序定义第一级异常恢复策略。

明确地说–

Optional API提供了一个容器类,该容器类可用于包装方法调用的返回值-即使它们包含“空”值。

它还提供了API,使程序员能够定义默认值,以便在遇到“ null”时返回。 这迫使开发人员在编码时考虑针对空值的缓解策略。

空检查可以通过两种方式执行–通过“ isPresent”和“ ifPresent”方法。

当我们调用“ isPresent ”时,如果存在非null值,则将返回“ true”。

另一方面,除了只检查该值是否为非null之外,如果我们希望将控制流委托给同一API调用中的另一个类,则可以使用“ ifPresent”方法。

此方法采用类型为“ Consumer ”的参数-本质上是一个功能接口。 可以通过应用程序中的类来实现此接口。

每当调用“ ifPresent ”时,我们都必须传递Consumer接口的实现,以便可以自动完成控制流委派。

从开发人员的角度来看–消费者的实现可以定义当存在非null值时要采取的措施。

此类还具有其他有用的功能,程序员可以使用这些功能来避免样板代码。

过滤器函数接受Predicate类型的参数。 如果返回值与谓词匹配,则返回过滤后的值,否则返回空的Optional对象。

在相似的行上,我们还有其他函数可以调用以组织返回值。 考虑地图功能和平面 地图功能。

这两个函数均用于为返回值(如果存在)创建键-值对映射。

开发人员还可以根据逻辑标准的评估来定义返回值。

例如,考虑以下功能–

如果返回值为null,则orElse函数将在参数中返回提供的值

orElseGet返回值(如果存在)。 否则,如果不存在,它将调用Supplier类型的参数以返回自定义值。

orElseThrow启用对异常处理的细粒度控制。 如果没有返回值,则可以引发自定义异常,或者可以将控制的飞行委托给Supplier类型-这又可以决定要抛出的异常。

总之,使用此API –我们可以在整个软件开发生命周期中受益

软件架构师可以通过标准化异常处理来减少代码审查周期。

质量检查工程师可以报​​告较少的由空指针异常引起的错误。

软件设计人员可以预先考虑其异常处理逻辑,避免以后再进行愚蠢的修补。

开发人员最终将编写更有效的代码,从而缩短产品上市时间。

翻译自: https://www.javacodegeeks.com/2019/04/eliminating-pointer-exceptions-java-applications.html

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

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

相关文章

工业级以太网交换机的应用领域有哪些?

由于工业环境对工业控制网络的可靠性要求非常高,要求工业以太网有很强的冗余功能,工业控制对通信的实时性要求很高,工业环境十分恶劣,往往要求工业以太网设备长时间运行在有强电磁干扰、剧烈震动、粉尘、超高温、或超低温的环境中…

无线通信模块定点传输-点对点的具体传输应用

近年来,随着射频技术、集成电路、自动控制、无线数据通讯技术的迅速发展,无线传输技术越来越多的被提及,当前的智慧城市、智慧农业、智慧工厂等都需要无线传输技术来支撑。以下主要介绍几种点对点的无线通信具体应用: 一、在油田…

[渝粤教育] 南京信息职业技术学院 模拟电子技术 参考 资料

教育 -模拟电子技术-章节资料考试资料-南京信息职业技术学院【】 随堂小测 1、【单选题】在本征半导体中,本征激发产生的载流子是( ) A、只有自由电子 B、只有空穴 C、正负离子 D、自由电子和空穴 参考资料【 】 2、【单选题】当PN结的P区加电…

基于433M频率无线通信模块在评委台的无线传输应用

1.433M频段特点 在无线电领域中,我们可以把无线电的种类按照频段来划分,如170M,315M,433M和2.4G等,本文主要以433M来介绍。 433MHZ频段的无线传输特点是:433MHZ是我们国家的免申请段发射接收频率&#xff…

工业级以太网交换机跟普通商用网络交换机有啥区别?

最近很多朋友在采购交换机的时候,对于工业级交换机跟商用网络交换机二者之间区分不是很清楚,对于具体采购哪一种类型的交换机拿不定主意,接下来杭州飞畅科技的小编来为您详细分析下二者之间的区别,帮你来快速判断适合哪种类型的交…

[渝粤教育] 南京工业职业技术大学 传感与智能控制技术 参考 资料

教育 -传感与智能控制技术-章节资料考试资料-南京工业职业技术大学【】 随堂测验 1、【单选题】下列说法错误的是 A、传感器是实现自动检测和自动控制的首要环节让物体有了触觉、味觉和嗅觉 B、传感器的功能可替代人类5大感觉器官 C、传感器是获取自然和生产领域中信息的主要途…

无线串口模块通信技术参数快速选型指南

首先我们来说一下什么是无线串口模块?无线模块即是通过无线电信号来传输数据的软硬件模组,串口模块即是使用串口通信协议来传输数据的软硬件模组,那么无线串口模块也就是使用串口协议来进行无线电通信的软硬件模组。就以下文产品为例来介绍如…

[渝粤教育] 南京理工大学泰州科技学院 大学物理(电磁学部分) 参考 资料

教育 -大学物理(电磁学部分)-章节资料考试资料-南京理工大学泰州科技学院【】 电荷 库仑定律 1、【单选题】库仑定律的适用范围是( ) A、真空中两个带电球体间的相互作用 B、真空中任意带电体间的相互作用 C、真空中两个正点电荷间…

工业级以太网交换机与普通商用交换机相比,在性能上有哪些优势?

现如今,随着网络技术的发展,许多需要使用网络的朋友都会用到交换机,可以实现一个网络多台电脑公用。现在常用的交换机主要分为普通商用网络交换机和工业级以太网交换机,顾名思义,工业以太网交换机就是工业用的交换机&a…

无线模块在蔬菜大棚案例的应用

一、无线模块在蔬菜大棚的应用 近年来,农业温室大棚种植为提高人们的生活水平带来极大的便利,得到了迅速的推广和应用。种植环境中的温度、湿度、光照度、CO2浓度等环境因子对作物的生产有很大的影响。传统的人工控制方式难以达到科学合理种植的要求&am…

飞畅科技-工业级以太网交换机常见问题解析!

相信大家在使用工业以太网交换机的时候会遇到各种各样的问题,我们在碰到这些问题的时候往往都是通过搜索引擎搜索来查找解决,或者找技术咨询,在这里杭州飞畅科技的小编为此专门整理了一些关于工业交换机常见的问题以及解答,希望你…

物联网5种无线传输协议特点大汇总

各种类型的无线通信技术支持设备在没有线缆连接的情况下,实现设备与设备之间或者是设备和串口服务器之间的数据通信,都是通过各种协议条件下进行的。目前有很多不同类型的无线通信技术在物联网(IoT)和设备到设备(M2M&a…

[渝粤教育] 同济大学 2021年秋 参考 资料

教育 -2021年秋-线性代数-单海英3-章节资料考试资料-同济大学【】 第一周测试 1、【单选题】 A、 B、 C、 D、 参考资料【 】 2、【单选题】 A、 B、 C、 D、 参考资料【 】 3、【单选题】 A、 B、 C、 D、 参考资料【 】 4、【单选题】 A、 B、 C、 D、 参考资料【 】 5、【单…

工业交换机厂家有哪些?工业交换机十大品牌供应商!

对于交换机这一块有所了解的朋友,想必对于工业交换机这一块一定不会陌生吧,工业交换机是我们在重新组建互联网中一个非常重要的电子通信设备,起着很重要的网络桥接作用,在工业上发挥着极大的作用。我们都知道,工业交换…

为特使建立控制平面的指南第2部分-识别组件

这是探索为Envoy Proxy构建控制平面的系列文章的第2部分。 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪些组件构成了控制平面,包括后备存储,服务发现API&…

无线通信模块定点传输-点对多点的具体传输应用

1. 无线模块通信传输发展背景 在物联网无线通信传输应用中,同一环境中往往具有多个无线通信模块在使用,由于射频本身的特性影响,导致无线模块相互传输过程中很容易造成干扰。干扰是由于同一个环境中使用了多对无线模块同时发射造成的。在多…

飞畅科技-工业交换机电源故障初探

众所周知,工业以太网交换机由于其特定的工业应用场合,我们在使用过程中难免会发生这样或那样的故障,但纵观来看这些故障还是有一定规律可循,比如电源故障就占其中很大一部分比重。工作中常遇到各种各样的电源故障问题,…

[渝粤教育] 四川大学 简明大学化学·物质结构部分入门 参考 资料

教育 -简明大学化学物质结构部分入门-章节资料考试资料-四川大学【】 微观粒子的运动特性 1、【单选题】首先对原子结构提出含核模型的科学家是() A、汤姆生(Thomson); B、卢瑟福(Rutherford); C、莫塞莱(Mosely); D、…

无线模块透明传输技术的物联网应用案例

近年来,随着射频技术、集成电路、自动控制、无线数据通讯技术的迅速发展,无线传输技术越来越多的被提及,当前的智慧城市、智慧农业、智慧工厂等都需要无线传输技术来支撑。以下主要介绍几种点对多点的无线通信模块具体应用: 一、…

飞畅科技-工业交换机防雷知识总结

工业级交换机的防雷不能偏重任何一方,偏重哪一方的防雷只能称为局部防雷,而局部防雷带有“先天不足”问题。所以工业级交换机防雷应综合进行防雷防范。那么,工业交换机防雷需要注意哪些问题呢?接下来就由飞畅科技的小编一起来为大…