jdk1.8 lambda理解

jdk1.8的理解


之前線上的jdk1.7的雌桑,登錄許久終于等到1.8的新項(xiàng)目喇喉, 終于可以用lambda表達(dá)式啦哈哈哈哈~~~

  • 匿名類(lèi)

對(duì)于一些接口,我們可以采用使用 new的方式創(chuàng)建

# 這個(gè)不是匿名類(lèi)
 Runnable runnable = new Runnable(){
  public void run(){
    System.out.prinln("this is a new Thread");
  }
}

new Thread(runnable).start();

# 這個(gè)就是匿名類(lèi)校坑。拣技。 沒(méi)有名類(lèi)名的類(lèi)
new Thread(
    new Runnable(){
      public void run(){
        System.out.prinln("this is a new Thread");
      }
    }
).start();

lambda表達(dá)式


我的理解就是 lambda就是針對(duì)于 匿名類(lèi)來(lái)的。耍目。
比如上面的 Runnable 接口定義如下: 可以簡(jiǎn)單理解就是 一個(gè)接口里面就一個(gè)方法过咬, 這種接口叫做 《函數(shù)式接口》, 這個(gè)方法的 入?yún)⑹鞘裁矗ㄟ@里是無(wú)參) 返回是什么類(lèi)型(這是是void)

@FunctionalInterface
public interface Runnable {
    /**
     * When an object implementing interface <code>Runnable</code> is used
     * to create a thread, starting the thread causes the object's
     * <code>run</code> method to be called in that separately executing
     * thread.
     * <p>
     * The general contract of the method <code>run</code> is that it may
     * take any action whatsoever.
     *
     * @see     java.lang.Thread#run()
     */
    public abstract void run();
}

對(duì)于沒(méi)有入?yún)⒅仆瑳](méi)有返回值的 接口函數(shù) lambda如下:

  () - >{log.info("this is test")}  # 

對(duì)于 lambda的理解, 這就是一個(gè) 匿名類(lèi)的實(shí)現(xiàn)泵三。 就和 new Runnable(){} 一樣耕捞。 不過(guò)就是 lambda表達(dá)式里面是否需要參數(shù)衔掸,和返回值是否需要, 需要靠 接口 里面的 那個(gè)方法決定俺抽。


  • Consumer

源碼如下:

@FunctionalInterface
public interface Consumer<T> {

    /**
     * Performs this operation on the given argument.
     *
     * @param t the input argument
     */
    void accept(T t);
}

這時(shí)候 你創(chuàng)建lambda表達(dá)式的時(shí)候 就需要 有一個(gè)參數(shù)啦敞映。。

Consumer<Integer> c = (a)->{System.out.println(a);}
# 調(diào)用
c.accept(1); 
// 輸出 1

  • Predicate

源碼如下:

@FunctionalInterface
public interface Predicate<T> {

    /**
     * Evaluates this predicate on the given argument.
     *
     * @param t the input argument
     * @return {@code true} if the input argument matches the predicate,
     * otherwise {@code false}
     */
    boolean test(T t);

這時(shí)候 你創(chuàng)建lambda表達(dá)式的時(shí)候 就需要 有一個(gè)參數(shù)啦磷斧。振愿。

Predicate<Integer> p = (a)->{return a>10;}
//或者
Predicate<Integer> p1 = (a)-> a>10
# 調(diào)用
p.test(23);
// 輸出 true

  • Supplier

這個(gè)東西呢,廢話不多說(shuō)弛饭,先看源碼

@FunctionalInterface
public interface Supplier<T> {

    /**
     * Gets a result.
     *
     * @return a result
     */
    T get();
}

lambda是 什么入?yún)⒍紱](méi)有冕末,但是返回一個(gè)對(duì)象

Supplier<User> s = ()->new User(); 
//這樣就搞定啦。侣颂。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末档桃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子憔晒,更是在濱河造成了極大的恐慌藻肄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拒担,死亡現(xiàn)場(chǎng)離奇詭異嘹屯,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)从撼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)州弟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人谋逻,你說(shuō)我怎么就攤上這事呆馁。” “怎么了毁兆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵浙滤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我气堕,道長(zhǎng)纺腊,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上幻工,老公的妹妹穿的比我還像新娘唯竹。我一直安慰自己,他們只是感情好热押,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著轮纫,像睡著了一般趁仙。 火紅的嫁衣襯著肌膚如雪洪添。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天雀费,我揣著相機(jī)與錄音干奢,去河邊找鬼。 笑死盏袄,一個(gè)胖子當(dāng)著我的面吹牛忿峻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辕羽,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼逛尚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了逛漫?” 一聲冷哼從身側(cè)響起黑低,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酌毡,沒(méi)想到半個(gè)月后克握,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡枷踏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年菩暗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旭蠕。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡停团,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掏熬,到底是詐尸還是另有隱情佑稠,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布旗芬,位于F島的核電站舌胶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏疮丛。R本人自食惡果不足惜幔嫂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望誊薄。 院中可真熱鬧履恩,春花似錦、人聲如沸呢蔫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至绽昏,卻和暖如春扬霜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背而涉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留联予,地道東北人啼县。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像沸久,于是被迫代替她去往敵國(guó)和親季眷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348