Optional
Optional 是 Java 8 提供的为了解决 null 安全问题的一个 API。 提供了多种方法来处理可能为 null 的值,从而减少空指针异常的风险。
使用 Optional,我们可以把下面的代码进行改写。
public static String getName(User user) {
if(user ==null || user.name == null) {
return "Unknown";
}
return user.name;
}// 🅱️ Bad
public static String getName(User user) {
Optional<User> userOptional = Optional.ofNullable(user);
if(!user.isPresent()) {
return "Unknown";
}
return user.get().getName();
}
// ✅ Good
public static String getName(User user) {
return Optional.ofNullable(user).map(User::getName).orElse("Unknown");
}构造 Optional 的三种方式
常用 API
ifPresent()
如果存在值,则执行指定的操作。
map()
map 方法能够返回另外一个 Optional 对象。
orElse()
如果存在指,返回指定的值,反之返回默认值。
orElseGet()
如果存在指,返回指定的值,调用 other 并返回该调用结果。
orElseThrow()
如果存在指,返回指定的值,反之抛出指定的异常。
最后更新于
这有帮助吗?