stream 操作

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");


分享到:


相關文章: