国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java8如何基于flatMap處理異常函數

Java8如何基于flatMap處理異常函數

2020-09-30 00:22賈樹丙 Java教程

這篇文章主要介紹了Java8如何基于flatMap處理異常函數,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Java8flatMap函數,作用是:如果有值,為其執行mapping函數返回Optional類型返回值,否則返回空Optional。

見到的映射函數往往都只有一句話,連大括號都不需要加的,如下:

?
1
2
3
String personValue = Optional.ofNullable(map.get("person"))
    .flatMap(value -> Optional.of(value.toString().trim()))
    .orElse("");

可是如果映射函數里,可能會拋出異常,該怎么辦?

方法也是使用try/catch,但是一定要有返回值return,返回值類型是Optional。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static void main(String[] args) {
  Map<String, Object> 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").parse(map.get("time").toString().trim());
      timeValue = new SimpleDateFormat("yyyy年MM月dd日").format(date);
    } catch (ParseException e) {
      e.printStackTrace();
    }
  }
  System.out.println(timeValue);
 
  //使用Java8的實現方法是
  String timeValue2 = Optional.ofNullable(map.get("time"))
      .flatMap(value2 -> {
        String ans = "";
        try {
          Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(value2.toString().trim());
          ans = new SimpleDateFormat("yyyy年MM月dd日").format(date);
        } catch (ParseException e) {
          e.printStackTrace();
        }
         return Optional.of(ans);
      }) .orElse("");
  System.out.println(timeValue2);
}

上訴方法中, 可以把flatMap改成map,但是返回值的類型就不能是Optional了。應該是返回的值會自動被包裝成Optional的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//使用Java8的實現方法是
String timeValue2 = Optional.ofNullable(map.get("time"))
    .map(value2 -> {
      String ans = "";
      try {
        Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(value2.toString().trim());
        ans = new SimpleDateFormat("yyyy年MM月dd日").format(date);
      } catch (ParseException e) {
        e.printStackTrace();
      }
       return ans;
    }) .orElse("");
System.out.println(timeValue2);

這樣看起來,使用lambda表達式,代碼并沒有優化多少啊?

應該是沒有了null的判斷,人們似乎很在意這個代碼中不能有null這個詞的說。

如果最后改成finally塊,IDEA會出現警告,雖然結果沒問題。這是因為finally塊中最好不能有返回值。

Java8如何基于flatMap處理異常函數

Reports finally blocks which can not complete normally.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/acm-bingzi/p/javaFlatMap.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久综合亚洲 | 亚洲男人网 | 国产一区二 | 欧美一级片在线 | 中文字幕四区 | 午夜精品久久久 | 国产日韩中文字幕 | 中文字幕av亚洲精品一部二部 | www日韩| 欧美精品久久久 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲激情在线播放 | 亚洲国内精品 | 免费亚洲片 | 久久综合九色综合欧美狠狠 | 亚洲国产精品久久久 | 欧美日韩亚洲成人 | 日韩国伦理久久一区 | 国产精品久久久久久久久图文区 | 激情五月婷婷基地 | 91久久综合 | 欧美一级高清在线 | 亚洲视频一区在线播放 | 亚洲精品视频观看 | 91大全 | 久久久精品欧美 | 成人免费网站 | 国产精品久久久久久久久久久久久 | 欧美午夜精品久久久久免费视 | 视频国产一区 | 亚洲成人免费影院 | www亚洲精品 | www.色小妹.com | 日韩精品在线观看视频 | 日韩中文字幕av | 91精品国产91久久久久久最新 | 国产精品二区一区二区aⅴ污介绍 | 91视频导航 | 色噜| 精品视频一区二区 | 久久精品一区二区三区四区 |