在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ java語法問題

java語法問題

private FutureTask<Map<String, NewsIdInfo>> getSearchFutureTask(NewsItem newsItem) {

    return new FutureTask<>(() -> {
        String docId = newsItem.getDocId();
        ...});

}

() -> 應該代表傳入一個callable的匿名子類對象
然而方法內部居然可以綁定入?yún)?這是什么用法?。???

回答
編輯回答
若相惜

lambda表達式,入?yún)⑹鞘裁匆馑?/p>

2017年12月22日 18:40
編輯回答
負我心

什么叫什么用法,如果你說的是 newsItem 為什么可以出現(xiàn)在 callable 里,是因為 Java 7/8(我記不清了)開始,不強制要求你寫 final 了,也就是說從以前就可以這樣寫,不過會是這個樣子:

private FutureTask<Map<String, NewsIdInfo>> getSearchFutureTask(final NewsItem newsItem) {

    return new FutureTask<>(() -> {
        String docId = newsItem.getDocId();
        ...});
}

大概是掃描你匿名子類中所用到的外部變量,可能 做一個快照,然后作為一個 final 給子類用。

2018年1月8日 03:34