Optional他是一个被final修饰的具体的类,我们一般拿它做一些对空(null)的判定。
请直接查看demo:
package java8.optional;
import java.util.Optional;
/**
* jdk1.8 容器类
*/
public class OptionalDemo {
public static void main(String[] args) throws Exception {
/**
* 创建方式
*/
//创建一个为null的optional
Optional.empty();
//创建一个不能为null的Optional
Optional.of(new Object());
//创建一个可能为null的Optional 如果为null 返回一个null的optional
Optional.ofNullable(new Object());
/**
* 通用方法
*/
Optional<String> bin = Optional.of("bin");
// isPresent 有值true没有值返回为false
System.out.println(bin.isPresent());
//获取option中的内容
System.out.println(bin.get());
//如果有值就执行里面的方法如果没有就什么都不做
bin.ifPresent(System.out::println);
//如果有值返回值 如果没有值 返回test
System.out.println(bin.orElse("test"));
//如果有值返回值 如果没有值新建值 进行返回
System.out.println(bin.orElseGet(() -> "default"));
//如果存在值则返回值 不存存在抛出自定义的异常信息
System.out.println(bin.orElseThrow(Exception::new));
// 根据操作重新创建optional
Optional<String> optional = bin.map((value) -> value.toUpperCase());
System.out.println(optional.get());
// 根据操作重新创建optional
Optional<String> optional1 = bin.flatMap((value) -> Optional.of(value.toUpperCase() + "faltMap"));
System.out.println(optional1.get());
//filter
final Optional<String> s = bin.filter((value) -> value.length() > 3);
System.out.println(s.orElse("长度小于3"));
}
}
版权声明:本文为qq_41446768原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。