package com.lfsun.java10study;
import java.util.Optional;
public class OptionalExample {
public static void main(String[] args) {
Optional<String> optional = Optional.of("Hello");
optional.ifPresentOrElse(
// 如果有值时执行
s -> System.out.println(s += " World!"),
// 如果无值时执行
() -> {
System.out.println("无值时执行的逻辑");
}
);
// 打印 "Present"
// 如果optional present则值为"Hello",否则为0
String value = optional.or(() -> Optional.of("0")).get();
System.out.println(value);
//将optional转换为Stream
Optional<String> any = optional.stream().filter(s -> s.length() > 3).findAny();
System.out.println(any);
// 使用flatMap()将字符串转换为数字,字符串格式错误会返回空
optional = Optional.of("5");
int num = optional.flatMap(s -> {
try {
return Optional.of(Integer.parseInt(s));
} catch (NumberFormatException e) {
return Optional.empty();
}
}).orElse(0);
System.out.println(num);
// num 是 5
// 将optional变空
optional = Optional.empty();
// 现在ifPresentOrElse()打印"Absent"
optional.ifPresentOrElse(
ifPresentOrElse -> System.out.println("hello"),
() -> System.out.println("Absent"));
}
}
文章来源地址https://www.toymoban.com/news/detail-546955.html
文章来源:https://www.toymoban.com/news/detail-546955.html
到了这里,关于Java 10 - Optional类新方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!