应用Optional对象的意义
- 当一个对象声明为Optional类型时,可以清晰地表达你的业务中,这个对象可能存在,也可能不存在,而对于那些明确需要存在的对象,则明确指定其为具体的类型,如String A,如果对象A不存在,那么直接抛出NPE异常,所以引入Optional对象可以更明确定位错误的原因
- 当一个对象需要根据是否为空来做多种条件判断时,使用Optional就可以让代码很简洁,如:
Optional<String> username = Optional
.ofNullable(getUserById(id))
.map(user -> user.getUsername())
.map(name -> name.toLowerCase())
.map(name -> name.replace('_', ' '));
System.out.println("Username is: " + username.orElse("Unknown"));
Optional<String> username = Optional
.ofNullable(getUserById(id))
.filter(user -> user.getId() < 10)
.map(user -> user.getUsername());
System.out.println("Username is: " + username.orElse("Unknown"));
参考链接
Java8(5):使用 Optional 处理 null