html门户网站模板,岳麓区营销型网站建设定制,做网站前台步骤,互联网招聘网站这篇文章简要介绍了Java 8的最有用但“毫不费力”的功能。 程序员花了无尽的时间来尝试纠正最常见但最危险的错误之一-空指针异常。 空指针异常可能导致我们的应用程序意外中断#xff0c;并且很难预先检测到。 在许多情况下#xff0c;当我们使用外部库和API时#xff0… 这篇文章简要介绍了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