@File
2019-10-09T03:49:10.000000Z
字数 1123
阅读 216
java
Optional.empty() 一个空的 Optional 实例
Optional<Object> optional = Optional.empty();
Optional.of() 一个值不为 null 的 Optional 实例
// .of(null会报错)Optional<String> optional = Optional.of(string);
Optional.ofNullable() 一个值可以 null 的 Optional 实例
// .ofNullable(可以为null)Optional<Integer> empty = Optional.ofNullable(number);
isPresent 是否有值
if(optional.isPresent()){// 值不为 null 时执行的内容}
ifPresent 如果存在值就调用回调
optional.ifPresent(u -> {// 值不为 null 时执行的内容// u Optional创建时存入的值或对象});
get 取值
// null会报错optional.get();
orElse 取值并设置备选值
// get 的增强版optional.orElse("else value!");
orElseGet 取值并设置备选方案
// orElse 的增强版optional.orElseGet(() -> "else value!");
orElseThrow 取值并设置异常方案
// 把空指针异常修改成运行时异常optional.orElseThrow(() -> new RuntimeException());
map 值修改方案
// 原始对象User user = new User("李大爷",18);// 创建 Optional 对象Optional<User> optional = Optional.of(user);// Optional 中的对象修改为对象中的 age 属性值Optional<Integer> integer = empty.map(u -> u.getAge());// 取值integer.orElse(0);
flatMap 值修改方案,返回回调结果filter 过滤
// .filter(过滤条件),回调 false 时返回 Optional.empty// 检查 Optional 中的对象的 age 属性值optional.filter(u -> u.getAge != 0);
or 取值并设置备选方案,返回回调结果ifPresentOrElse 值存在和不存在分别调用不同的回调stream 吧 Optional 转换为流对象