欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java8新特性之Lambda表達(dá)式的語(yǔ)法是什么

這篇文章主要介紹了Java8新特性之Lambda表達(dá)式的語(yǔ)法是什么的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Java8新特性之Lambda表達(dá)式的語(yǔ)法是什么文章都會(huì)有所收獲,下面我們一起來看看吧。

陸河網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,陸河網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為陸河數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的陸河做網(wǎng)站的公司定做!

#Lambd表達(dá)式 Lambda表達(dá)式是一個(gè)匿名函數(shù),我們可以把 Lambda 表達(dá)式理解為是一段可以傳遞的代碼(將代碼 像數(shù)據(jù)一樣進(jìn)行傳遞)??梢詫懗龈?jiǎn)潔、更靈活的代碼。作為一種更緊湊的代碼風(fēng)格,使Java的語(yǔ)言表達(dá)能力得到了提升。 ##1. 格式 '->' :lambda操作符或箭頭操作符 '->'的左邊: Lambda形參列表(其實(shí)就是接口中的抽象方法的形參列表) '->'的右邊: Lambda體 (其實(shí)就是 重寫的抽象方法的方法體) ##2. Lambda表達(dá)式的使用 Lambda表達(dá)式的使用為了方便理解,分為6種情況介紹,通過內(nèi)置函數(shù)式接口來舉例,也可以對(duì)比匿名函數(shù)來理解。

語(yǔ)法格式一:無參,無返回值,Lambda體只需一條語(yǔ)句

Runnable r2 = ()->{
            System.out.println("Test1");
        };

語(yǔ)法格式二:Lambda需要一個(gè)參數(shù),并且無返回值

Consumer<String> con2 = (String s)->{
            System.out.println(s);
        };
        con2.accept("test2");

語(yǔ)法格式三:Lambda只需要一個(gè)參數(shù)時(shí),參數(shù)的小括號(hào)可以省略,同時(shí)省略參數(shù)變量類型(類型推斷)

Consumer<String> con2 = s->{
            System.out.println(s);
        };
        con2.accept("test2");

語(yǔ)法格式四:Lambda需要兩個(gè)參數(shù),并且有返回值

Comparator<Integer> com2 = (Integer o1,Integer o2) -> {
    return o1.compareTo(o2);
};

語(yǔ)法格式五:當(dāng) Lambda 體只有一條語(yǔ)句時(shí),return 與大括號(hào)可以省略

Comparator<Integer> com2 = (Integer o1,Integer o2) -> o1.compareTo(o2);

語(yǔ)法格式五:數(shù)據(jù)類型可以省 略,因?yàn)榭捎删幾g器推斷得出, 稱為“類型推斷

// 數(shù)據(jù)類型可以省略,因?yàn)榭捎删?nbsp;譯器推斷得出, 稱為“類型推斷  
Comparator<Integer> com2 = (o1,o2) -> o1.compareTo(o2);

上述 Lambda 表達(dá)式中的參數(shù)類型都是由編譯器推斷得出的。Lambda 表達(dá)式中無需指定類型,程序依然可以編譯,這是因?yàn)?javac 根據(jù)程序的上下文,在后臺(tái)推斷出了參數(shù)的類型。Lambda 表達(dá)式的類型依賴于上下文環(huán)境,是由編譯器推斷出來的。這就是所謂的“類型推斷” ##3. 函數(shù)式接口 ###3.1 什么是函數(shù)式接口 只包含一個(gè)抽象方法的接口,稱為函數(shù)式接口。 你可以通過 Lambda 表達(dá)式來創(chuàng)建該接口的對(duì)象。(若 Lambda 表達(dá)式拋出一個(gè)受檢異常,那么該異常需要在目標(biāo)接口的抽象方法上進(jìn)行聲明)。Lambda表達(dá)式也是依賴于函數(shù)式接口的。 我們可以在任意函數(shù)式接口上使用 @FunctionalInterface 注解, 這樣做可以檢查它是否是一個(gè)函數(shù)式接口,同時(shí)javadoc也會(huì)包含一條聲明,說明這個(gè)接口是一個(gè)函數(shù)式接口。 ###3.2 如何理解函數(shù)式接口 1.Java從誕生口起就是一直倡導(dǎo)“一切皆對(duì)象”,在Java里面面向?qū)ο?OOP)編程是一切。但是隨著python、 scala等語(yǔ)言的興起和新技術(shù)的挑戰(zhàn),Java不得不做出調(diào)整以便支持更加廣泛的技術(shù)要求,也即Java不但可以支持OOP還可以支持OOF(面向函數(shù)編程) 2.在函數(shù)式編程語(yǔ)言當(dāng)中,函數(shù)被當(dāng)做一等公民對(duì)待。在將函數(shù)作為一等公民的編程語(yǔ)言中,Lambda表達(dá)式的類型是函數(shù)。但是在Java8中,有所不同。在Java8中,Lambda表達(dá)式是對(duì)象,而不是函數(shù),它們必須依附于一類特別的對(duì)象類型-函數(shù)式接口。 3.簡(jiǎn)單的說,在Java8中,Lambda表達(dá)式就是一個(gè)函數(shù)式接口的實(shí)例。這就是Lambda表達(dá)式和函數(shù)式接口的關(guān)系。也就是說,只要一少對(duì)象是函數(shù)式接口的實(shí)例,那么該對(duì)象就可以用Lambda表達(dá)式來表示。 所以以前用匿名實(shí)現(xiàn)類表示的現(xiàn)在都可以用Lambda表達(dá)式來寫。 ###3.3 自定義函數(shù)式接口

/**
這個(gè)接口里只能寫一個(gè)方法,寫多個(gè)方法注解會(huì)爆紅,注解的作用是驗(yàn)證該接口是否是函數(shù)接口
若果不寫該注解,并且接口只有一個(gè)方法則該接口也是函數(shù)式接口
*/
@FunctionalInterface  
public interface MyInterface { 
    void method();
}

//泛型寫法
@FunctionalInterface  
public interface MyInterface<T> { 
    T method(T t);
}

###3.4 Java 內(nèi)置四大核心函數(shù)式接口

Java8新特性之Lambda表達(dá)式的語(yǔ)法是什么

舉兩個(gè)簡(jiǎn)單的例子

public void test4(){
        Consume(500, new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) {
                System.out.println("消費(fèi)了"+integer);
            }
        });
        //lambda表達(dá)式寫法
        Consume(400,money-> System.out.println("賺了"+money));
    }

public static void Consume(int money, Consumer<Integer> consumer){
        consumer.accept(money);
}
public void test5(){
        List<String> list = Arrays.asList("sss","rrr","yyyyy","ssdasds","sd");
        list = predit(list, new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return s.length()>3;
            }
        });
        System.out.println(list.toString());
        //lambda表達(dá)式寫法
        List<String> list1 = Arrays.asList("12","13","14","15","16","17");
        list1 = predit(list1,i->Integer.parseInt(i)>14);
        System.out.println(list1.toString());
    }
    public static List<String> predit(List<String> strings, Predicate<String> predicate){
        List<String> list = new ArrayList<>();
        for (String s:strings){
            if (predicate.test(s)){
                list.add(s);
            }
        }
        return list;
    }

關(guān)于“Java8新特性之Lambda表達(dá)式的語(yǔ)法是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Java8新特性之Lambda表達(dá)式的語(yǔ)法是什么”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享文章:Java8新特性之Lambda表達(dá)式的語(yǔ)法是什么
本文鏈接:http://aaarwkj.com/article18/iijsgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)App開發(fā)、企業(yè)建站、建站公司手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
91精品国产91久久综合福利| 国产精品视频一区二区噜| 肥胖老熟女一区二区三区| 久久国产欧美日韩精品免费| 亚洲欧洲日韩综合另类| 91在线国产手机视频| 日本人妻久久中文字幕精品| 亚洲乱色熟女一区二区三区麻豆| 亚洲精品一区二区三区pp| 欧美精品亚洲精品日韩经典| 精品国产美女主播在线 | 国产精品区一区二区三区| 成人免费激情在线观看| 国产精品一区二区婷婷| 国产欧美日韩一区二区三区不卡 | 亚洲免费视频一二三区| 麻豆影片在线免费观看| 久久综合伊人欧美精品| 午夜丁香婷婷爽少妇av| 欧美精品一区二区久久不卡| 久久精品一区二区婷婷| 中文字幕日韩欧美一区二区| 亚洲一区二区另类视频| 国产高清在线a视频大全| 国产中文字幕精品在线| 日韩在线一区二区视频观看| 久久午夜福利欧美视频| 国产黄色大片一级久久| 国产精品一区二区啪啪| 久久青草精品欧美日韩精品| 亚洲熟妇一区二区在线| 国产又粗又爽视频免费| 日韩av黄色制服在线网站| 欧美日韩精品人妻中文| 国产高清av免费在线观看| av免费在线观看网页| 日本高清不卡在线一区二区| 欧美+亚洲+精品+三区| 亚洲乱码在线中文字幕| 日本成人午夜电影网站| 97色伦综合在线欧美视频|