Optional可以处理我们遇到的空指针
Optional
of(Tvalue)接受一个对象,如果是null会抛出一个异常
1 User user=null;
2 System.out.println( Optional.of(user));
ofNullable(T value)接受一个可能为null的值 返回一个ofNullable()
1 User user=null;
2 System.out.println(Optional.ofNullable(user));
3 >>输出
4 Optional.empty
empty();
orElse() 和 orElseGet()
无论传入user是否为空 orelse都会执行
orElseGet方法只有user为null时才会执行
orElseThrow 处理异常异常
1 User user=null;
2 System.out.println(Optional.ofNullable(user).orElse(newUser(2,"password","userName")))
3
4 User user=null;
5 System.out.println(Optional.ofNullable(user).orElseGet(()‐>new User(2,"password","userName")));
6 User user=null;
7 System.out.println(Optional.ofNullable(user).orElseThrow(()‐> {throw new IllegalStateException();} ));
map()
1 User user=new User(2,"password","userName");
2
3 System.out.println(Optional.ofNullable(user).map(User::getUserName).get());
4 >>userName
flatMap
1 User user=new User(2,"password","userName");
2
3 System.out.println(Optional.ofNullable(user).flatMap(User::getOptionalName).get());
4
5 /***
6 ** 返回optional对象
7 */
8 public Optional<string> getOptionalName(){/<string>
9 return Optional.ofNullable(userName);
10 }
isPresent()和ifPresent(Consumer super T> consumer)
true 如果不是一个null对象 false 是null
1 Optional<user> optionalUser = Optional.ofNullable(null);/<user>
2 if (optionalUser.isPresent()){
3 System.out.println("not Null");
4 }
5 else {
6 System.out.println("null");
閱讀更多 編程的boy 的文章
關鍵字: System 抛出 ofNullable