202108-31 详解JAVA中的OPTIONAL 目录一、概述二、创建Optional实例2.1、访问Optional对象的值2.2、返回默认值2.3、orElse()和orElseGet()的不同之处2.4、返回异常三、转换值3.1、过滤值四、Optional类的链式方法五、Java9增强六、Optional应该怎样用?七、总结一、概述本质上,这是一个包含有可选值的包装类,这意味着Optional类既可以含有对象也可以为空。Optional是Java实现函数式编程的强劲一步,并且帮助在范式中实现。但是Optional的意义显然不止... 继续阅读 >
202102-21 Java8 Optional的详细使用教程 Optional介绍Optional是Jdk1.8提供的一个新类,希望可以通过该类的引入解决令人烦躁的null判断问题,非常好用。个人理解:这个类是一个包装类,将要操作的javabean封装到该类的对象里面,同时将一些常用的判断逻辑封装为成员方法,结合lambda语法,实现比较优雅的链式调用。现在对Optional的API使用做一个简单的说明。API介绍Optional的所有的方法如下图所示,这些API大致可以分为以下几类:1、构建API:构建一个Optional对象;方... 继续阅读 >
202102-01 Java中Optional的使用指南 提到NullPointerException(简称NPE)异常,相信每个Java开发人员都不陌生,从接触编程的第1天起,它就和我们如影随形,最近处理的线上bug中,有不少都是对象没判空导致的NullPointerException异常。1.简单回顾引起NullPointerException异常的地方有很多,比如调用String的trim()方法,比如对BigDecimal进行计算时,比如将包装类型转化为基本类型时,这里简单回顾下。假设有个导入模版定义如下:packagecom.zwwhnly.springbootac... 继续阅读 >
202012-03 Maven中optional和scope元素的使用弄明白了吗 在梳理项目的过程中发现很多开发同学对Maven依赖文件的配置并不了解,特别是对Maven的optional元素和scope元素的使用也非常随意。这就会导致发布的jar包或war包非常“胖”、编译速度慢,而且还很容易生产jar冲突等问题。本篇文章从optional和scope的使用场景入手,让项目实现一波瘦身。optional元素这里以SpringBoot项目中的使用为例,比如我们在项目中经常使用的热部署组件spring-boot-devtools,就可以... 继续阅读 >
202012-02 如何使用Java中的Optional NullPointerException是非常常见的异常。由于它,程序往往需要大量使用if-else代码块来处理空值,这使得代码看起来不简洁优雅,且不方便自己和他人阅读。本文介绍如何用Optional类来处理null值问题。Optional类先来看一段代码:Stringisocode=user.getAddress().getCountry().getIsocode().toUpperCase();这段代码在任何一个方法调用时,都有可能抛出NullPointerException。而通常我们的处理方式是不断地利用if代码块来确保上... 继续阅读 >
202010-10 Java8 Optional原理及用法解析 平时开发的工作中,自己组内的很多大佬经常使用Optional的用法,自己问他们,这个到底有什么好处呢,他们说可以很好的规避好空指针的问题,我们在平时写java代码的时候,如果是一个新手,肯定很多情况下都会出现空指针的报错,而java8以后提供的Optional的问题,就可以很好地规避我们空指针的问题.空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过... 继续阅读 >
202009-29 还在用if(obj!=null)做非空判断,带你快速上手Optional 1.前言相信不少小伙伴已经被java的NPE(NullPointerException)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性Optional来尽量简化代码同时高效处理NPE(NullPointerException空指针异常)2.认识Optional并使用简单来说,Opitonal类就是Java提供的为了解决大家平时判断对象是否为空用会用null!=obj... 继续阅读 >