/* Optional 容器类常用方法 Optional.of(T t) 创建一个Optional实例 Optional.empty() 创建一个空的Optional实例 Optional.ofNullable(T t) 若t不为null,则创建Optional实例,否则创建空实例 isPresent():判断是否包含值 orElse(T t):如果对象包含值,返回该值,否则返回t orElseGet(Supplier s):如果对象包含值,返回该值,否返回 s 获取的值 map(Function f): 如果有值对其进行处理,并返回处理后的Optional,否则返回Optional.empty() flatMap(Function map) : 与map类似,要求返回值是Optional */ Optional<Book> op = Optional.of(new Book()); System.out.println(op.get()); Optional<Book> op2 = Optional.ofNullable(new Book()); if(op2.isPresent()){ System.out.println(op2.get()); } Book book = op2.orElse(new Book()); Book book2 = op2.orElseGet(()-> new Book()); Optional<String> str = op2.map(e-> e.getName()); Optional<String> str2 = (Optional<String>) op2.flatMap(e-> Optional.of(e.getName()));