Optional类存在于java8中,用于解决防止空指针问题写的很多if。
常见API:
**of, ofNullable**,
Optional.of(user); No matter what the user is ,return the user;
Optional.ofNullable(user);If user is null, return the empty Object.
**orElse, orElseGet, orElseThrow**
Optional.ofNullable(user).orElse(new User());//Even if user is null, return new User().
Optional.ofNullable(user).orElseGet(new User());//If user is null,return new User(),else return user.
Optional.ofNullable(user).orElseThrow(()->new RuntimeException("Exception"));//If user is null, throw Exception.
**map, isPresent, ifPresent**
Optional.ofNullable(user).map(u -> u.getEmail()).get();//取得email的值。Get the value of email
Optional.ofNullable(user).ifPresent(u->{
System.out.println("存在");
});//If user isn't null,sout "存在"
**filter**
Optional.ofNullable(user).filter(u->u.getEmail().equals("123@.com")).orElseGet(()->new User());
//If user's email equals "123@.com",return this user,else return new User();