介绍 Optional是JDK8中提供用于包含未知对象的工具类,即可以利用Optional包装对象来避免繁琐的空指针检查,以及NullPointException的处理,在Optional中,用value代表所包裹的对象. API table th { width: 100px; } 方法名称 返回类型 参数 功能 static empty Optional 无 生成一个空的Optional对象 static of Optional T value 返回一个包裹给定对象的Optional对象 s
NullPointerException,大家应该都见过.这是Tony Hoare在设计ALGOL W语言时提出的null引用的想法,他的设计初衷是想通过编译器的自动检测机制,确保所有使用引用的地方都是绝对安全的.很多年后,他对自己曾经做过的这个决定而后悔不已,把它称为“我价值百万的重大失误”.它带来的后果就是---我们想判断一个对象中的某个字段进行检查,结果发现我们查看的不是一个对象,而是一个空指针,他会立即抛出NullPointerException异常. 看下面这个例子: public c
作为程序员,你肯定遇到过NullPointerException, 这个异常对于初出茅庐的新人, 还是久经江湖的老手都是不可避免的痛, 可又是那么的无能为力,为了解决它,你只能在使用某个值之前,对其进行判空处理.然而这样会使得代码变得臃肿不堪.幸好jdk8引入了optional来处理了null的问题,使得我们可以不再对null做过多的关心. 先展示jdk8之前的写法 // First before jdk8 Long id = 0L; User user = getUserById(id);