第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

lambda表達式 這句代碼是什么意思呢?

lambda表達式 這句代碼是什么意思呢?

牛魔王的故事 2019-04-25 18:15:14
new Thread(() -> {            try {                this.bind();            } catch (Exception e) {                log.info("TCP服務啟動出錯:{}", e.getMessage());                e.printStackTrace();            }        }, this.getName()).start();這個() -> 是什么意思哦 如果要改寫 怎么改。網上說()相當與參數 -> 后面是方法或者表達式 new Thread( this.bind(),this.getName() ).start();這樣寫好像不對哦
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

new Thread( () -> { }, this.getName() ).start(); 這段代碼可以這樣看 , 首先是調用了Thread的構造函數去實例化對象 ,然后調用它的 start 方法.
這個構造函數有兩個參數 , 其中一個必須是函數式接口 , 去Thread類中查找只能找到 Thread( Runnable , String) 這個構造函數滿足要求. 
然后第一個參數是Runnable對象 , 他采用的是 lambda表達式來作為參數傳遞 , 而不是使用匿名內部類或者Runnable的實現(xiàn)類對象作為參數
因為Runnable接口是一個函數式接口 , 只有一個 run() 方法且沒有參數 , 所以使用 () ->{ run方法具體實現(xiàn)代碼 } lambda表達式 , 相當于你創(chuàng)建了一個Runnable對象

查看完整回答
反對 回復 2019-05-14
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

首先 Runnable接口就是一個函數式接口 , 函數式接口都可以通過lambda表達式來達到行為參數化的目的 ; 意思就是說本來你是需要一個Runnable 類型作為參數 , 但是你不想新建一個類去實現(xiàn)Runnable接口 , 或者使用匿名內部類去 new 一個Runnable的實現(xiàn) , 那么lambda表達式可以幫你解決這些麻煩 . 而且函數式接口只能有一個抽象方法 (不算默認方法) , 所以你調用的就是這個方法 ; 這個是java8 開始支持的 , 很值得去學習一下 , 不知道我有沒有講清楚

查看完整回答
反對 回復 2019-05-14
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

就是參數列表啊,new thread不需要傳入參數所以()是對的。。。


查看完整回答
反對 回復 2019-05-14
  • 3 回答
  • 0 關注
  • 569 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號