Java8的flatMap函数,作用是:如果有值,为其执行mapping函数返回Optional类型返回值,否则返回空Optional。
见到的映射函数往往都只有一句话,连大括号都不需要加的,如下:
String personValue = Optional.ofNullable(map.get("person"))
.flatMap(value -> Optional.of(value.toString().trim()))
.orElse("");
可是如果映射函数里,可能会抛出异常,该怎么办?
方法也是使用try/catch,但是一定要有返回值return,返回值类型是Optional。
public static void main(String[] args) {
Map map = new HashMap<>();
String value = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
System.out.println(value);
map.put("time",value);
//原来的实现方法是
String timeValue = "";
if(map.get("time") != null){
try {
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").p