国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Lambda表達(dá)式和匿名內(nèi)部類的區(qū)別

這篇具有很好參考價(jià)值的文章主要介紹了Lambda表達(dá)式和匿名內(nèi)部類的區(qū)別。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、所需類型不同

  • 匿名內(nèi)部類:可以是接口,也可以是抽象類,還可以是具體類
  • Lambda表達(dá)式:只能是接口

2、使用限制不同

  • 如果接口中有且僅有一個(gè)抽象方法,可以使用Lambda表達(dá)式,也可以使用匿名內(nèi)部類
  • 如果接口中多于一個(gè)抽象方法,只能使用匿名內(nèi)部類,而不能使用Lambda表達(dá)式

3、實(shí)現(xiàn)原理不同

  • 匿名內(nèi)部類:編譯之后,產(chǎn)生一個(gè)單獨(dú)的.class字節(jié)碼文件
  • Lambda表達(dá)式:編譯之后,沒有一個(gè)單獨(dú)的.class字節(jié)碼文件。對應(yīng)的字節(jié)碼會在運(yùn)行的時(shí)候動(dòng)態(tài)生成
package com.lambda;

public class LambdaDemo {

    public static void main(String[] args) {

        useStudent(new Student() {
            @Override
            public void study() {
                System.out.println("具體類");//具體類
            }
        });

        useAnimal(new Animal() {
            @Override
            public void method() {
                System.out.println("抽象類");//抽象類
            }
        });

        useInter(() -> System.out.println("接口"));//接口

    }

    //使用實(shí)體類作為方法的形參
    public static void useStudent(Student s) {
        s.study();
    }

    //使用抽象類作為方法的形參
    public static void useAnimal(Animal a) {
        a.method();
    }

    //使用接口作為方法的形參
    public static void useInter(Inter i) {
        i.show();
    }

}

interface Inter {
    void show();
}

abstract class Animal {

    public abstract void method();
}

class Student {
    public void study() {
        System.out.println("愛生活,愛Java");
    }
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-691105.html

到了這里,關(guān)于Lambda表達(dá)式和匿名內(nèi)部類的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【C++】STL 算法 ② ( foreach 循環(huán)中傳入 函數(shù)對象 / Lambda 表達(dá)式處理元素 | foreach 循環(huán)算法 | Lambda 表達(dá)式 - 匿名 函數(shù)對象 / 仿函數(shù) )

    【C++】STL 算法 ② ( foreach 循環(huán)中傳入 函數(shù)對象 / Lambda 表達(dá)式處理元素 | foreach 循環(huán)算法 | Lambda 表達(dá)式 - 匿名 函數(shù)對象 / 仿函數(shù) )

    在 C++ 語言中 , std::foreach 循環(huán) 雖然 不是標(biāo)準(zhǔn)庫的一部分 , 但是 C ++ 編譯器 提供了對 該語法 的支持作為擴(kuò)展 ; 使用 該 std::foreach 循環(huán) , 可以用于 遍歷 STL 標(biāo)準(zhǔn)模板庫 中提供的容器 , 如 vector 單端數(shù)組 , list 雙向鏈表 , map 映射 , set 集合 等 容器 中的元素 ; std::for_each 是一個(gè)算

    2024年02月02日
    瀏覽(45)
  • java學(xué)習(xí)路程之篇三、進(jìn)階知識、面向?qū)ο蟾呒?、接口新特性、代碼塊、內(nèi)部類、Lambda表達(dá)式、窗體、組件、事件

    概述 生成值類型響應(yīng)式數(shù)據(jù) 通過 .value 值修改 生成對象和數(shù)組類型的響應(yīng)式對象選用 reactive 方式比較好 html JavaScript 概述 reactive 方法根據(jù)傳入的對象,創(chuàng)建返回一個(gè)深度響應(yīng)式對象。響應(yīng)式對象看起來和傳入的對象一樣。但是,響應(yīng)式對象屬性值改動(dòng),不管層級有多深,都

    2024年02月16日
    瀏覽(21)
  • 【C#進(jìn)階】C#中的委托、事件、回調(diào)函數(shù)、匿名函數(shù)和lambda表達(dá)式

    委托是一種類型,它可以存儲對一個(gè)或多個(gè)方法的引用。它類似于C/C++中的函數(shù)指針,允許您將方法作為參數(shù)傳遞、存儲和調(diào)用。 寫法: delegate return_type delegate_name( ); return_type :表示委托所引用方法的返回類型。 delegate_name :表示委托的名稱。 parameters :表示委托所引用方法

    2024年02月06日
    瀏覽(21)
  • C++結(jié)合Lambda表達(dá)式在函數(shù)內(nèi)部實(shí)現(xiàn)遞歸

    C++結(jié)合Lambda表達(dá)式在函數(shù)內(nèi)部實(shí)現(xiàn)遞歸

    529. 掃雷游戲 已解答 中等 相關(guān)標(biāo)簽 相關(guān)企業(yè) 讓我們一起來玩掃雷游戲! 給你一個(gè)大小為? m x n ?二維字符矩陣? board ?,表示掃雷游戲的盤面,其中: \\\'M\\\' ?代表一個(gè)? 未挖出的 ?地雷, \\\'E\\\' ?代表一個(gè) ?未挖出的? 空方塊, \\\'B\\\' ? 代表沒有相鄰(上,下,左,右,和所有4個(gè)

    2024年02月21日
    瀏覽(20)
  • Lambda表達(dá)式內(nèi)部訪問的局部變量必須是final or effectively final 為什么

    在Java中,Lambda表達(dá)式內(nèi)部訪問的局部變量必須是final或者事實(shí)上的final。這是因?yàn)長ambda表達(dá)式實(shí)際上是一個(gè)閉包,它包含了對其外部的變量的引用,而這些變量在Lambda表達(dá)式執(zhí)行期間不能被修改,否則會導(dǎo)致線程安全問題。 在Java中,final表示一個(gè)變量被賦值之后不能再

    2024年02月13日
    瀏覽(18)
  • 進(jìn)階JAVA篇- Lambda 表達(dá)式與 Lambda 表達(dá)式的省略規(guī)則

    進(jìn)階JAVA篇- Lambda 表達(dá)式與 Lambda 表達(dá)式的省略規(guī)則

    目錄 ? ? ? ? 1.0 什么是 Lambda 表達(dá)式? ? ? ? ? 1.1 既然跟匿名內(nèi)部類相關(guān),先來回顧匿名內(nèi)部類。 ? ? ? ? ?1.2 Lambda 表達(dá)式與匿名內(nèi)部類之間的關(guān)系。 ? ? ? ? 1.3 函數(shù)式接口 ? ? ? ? 1.4 在具體代碼中來操作一下 ? ? ? ? 2.0?Lambda 表達(dá)式省略規(guī)則 ??????? ?Lambda 表達(dá)

    2024年02月08日
    瀏覽(29)
  • Java- Lambda表達(dá)式

    目錄 一、Lambda簡介 二、Lambda使用前提 三、Lambda語法 1.操作符 a.\\\"-\\\" ?b.\\\"::\\\" 2.格式? a.無參數(shù) b.有參數(shù) 四、Lambda演化過程 五、Lambda實(shí)現(xiàn)排序 Lambda 表達(dá)式,也可稱為閉包,它是推動(dòng) Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)

    2024年02月03日
    瀏覽(28)
  • Java Lambda表達(dá)式

    1.1 函數(shù)式編程思想概括 在數(shù)學(xué)中,函數(shù)就是有輸入量、輸出量的一套計(jì)算方案,也就是“拿數(shù)據(jù)做操作” 面向?qū)ο笏枷霃?qiáng)調(diào)“必須通過對象的形式來做事情” 函數(shù)式思想則盡量忽略面

    2024年02月07日
    瀏覽(42)
  • Java Lambda 表達(dá)式

    Java Lambda 表達(dá)式

    ??wei_shuo的個(gè)人主頁 ??wei_shuo的學(xué)習(xí)社區(qū) ??Hello World ! Java Lambda 表達(dá)式是 Java 8 引入的一種函數(shù)式編程特性,它是一種輕量級的匿名函數(shù),允許我們將函數(shù)作為方法的參數(shù)進(jìn)行傳遞。Lambda 表達(dá)式可以理解為是一種簡潔的方式來表示可傳遞的代碼塊,它可以替代傳統(tǒng)的匿名內(nèi)

    2024年02月08日
    瀏覽(34)
  • Lambda表達(dá)式(JAVA)

    Lambda表達(dá)式(JAVA)

    注:如果沒有學(xué)過 匿名內(nèi)部類 和 接口 不推薦往下看。 (parameters) - expression 或 (parameters) -{ statements; } parameters:表示參數(shù)列表; -:可理解為“被用于”的意思; expression:表示一條語句; statements:表示多條語句。 Lambda可以理解為:Lambda就是匿名內(nèi)部類的簡化。 lambda表達(dá)式

    2024年02月08日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包