最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Java中Lambda表達式的相關操作

 更新時間:2021年06月30日 15:30:03   作者:紅旗下的小兵  
java8新特性,Lambda是一個匿名函數,類似Python中的Lambda表達式、js中的箭頭函數,目的簡化操作,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下

為什么要使用Lambda?

可以對一個接口進行非常簡潔的實現。

Lambda對接口的要求?

接口中定義的抽象方法有且只有一個才可以。

傳統實現一個接口需要這樣做:

方法一:

// 實現接口,同時必須重寫接口中抽象方法
class Test implements IntrfacefN {
    @Override
    public void getUser(int a, int b) {
    }
}
// @FunctionalInterface 注解意思:函數式接口,用來做規(guī)范,有這個注解,說明此接口有且只有一個抽象方法?。?! 
@FunctionalInterface
interface IntrfacefN{
    public void getUser(int a, int b);
}

方法二:
匿名表達式

public class Lamda {
    public static void main(String[] args) {
        // 匿名表達式實現接口
        IntrfacefN intrfacefN1 = new IntrfacefN(){
            @Override
            public void getUser(int a, int b) {
                
            }
        };
    }
}

使用Lambda -> 只關注參數和方法體(返回值類型不需要寫、類型不需要寫)

public class Lamda {
    public static void main(String[] args) {
        // 實現接口,后邊匿名函數就是重寫的方法!
        IntrfacefN intrfacefN = (int a, int b) -> System.out.println(a-b);
        intrfacefN.getUser(1, 2);
    }
}

不定參

@FunctionalInterface
interface IntrfacefN{
    public void getUser(int... a);
}
public class Lamda {
    public static void main(String[] args) {
        IntrfacefN intrfacefN = (int ...a) -> {
            for (int i = 0; i < a.length; i ++) {
                System.out.println(a[i]);
            }
        };
        intrfacefN.getUser(1, 2);
    }
}

可省略的部分

參數類型

IntrfacefN intrfacefN = (a, b) -> System.out.println(a-b);

小括號
前提只有一個參數情況

IntrfacefN intrfacefN = a -> System.out.println(a);

方法大括號

方法體只有一句代碼

IntrfacefN intrfacefN = (a, b) -> System.out.println(a-b);

返回return

如果大括號中只有一條返回語句,則return 也可以省略

IntrfacefN intrfacefN = (a, b) -> {
    return a-b
};
// 省略之后寫法:
IntrfacefN intrfacefN = (a, b) -> a-b;

高級部分

方法的引用

將一個Lambda表達式的實現指向一個已實現的方法,這樣做相當于公共邏輯部分的抽離,實現復用。

public class Lamda {
    public static void main(String[] args) {
        IntrfacefN intrfacefN = (a, b) -> add(a, b);
        intrfacefN.getUser(1, 2);
    }
    public static void add(int a, int b) {
        System.out.println(a+b);
    }
}
 
@FunctionalInterface
interface IntrfacefN{
    public void getUser(int a, int b);
}

還有更簡潔的實現:
方法隸屬者:語法 - 方法隸屬者::方法名
補充下:這個方法隸屬者,主要看方法是類方法還是對象方法,如果是類 - 方法類::方法名 ,如果是對象方法 - new 方法類::方法名

public class Lamda {
    public static void main(String[] args) {
        IntrfacefN intrfacefN = Lamda::add;
        intrfacefN.getUser(1, 2);
    }
    public static void add(int a, int b) {
        System.out.println(a+b);
    }
}
 
@FunctionalInterface
interface IntrfacefN{
    public void getUser(int a, int b);
}

到此這篇關于淺談Java中Lambda表達式的相關操作的文章就介紹到這了,更多相關Java Lambda表達式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java的枚舉enum示例詳解

    Java的枚舉enum示例詳解

    這篇文章主要給大家介紹了關于Java的枚舉enum的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • SpringBoot返回統一的JSON標準格式實現步驟

    SpringBoot返回統一的JSON標準格式實現步驟

    這篇文章主要介紹了SpringBoot返回統一的JSON標準格式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • MyBatis的核心配置文件以及映射文件

    MyBatis的核心配置文件以及映射文件

    這篇文章主要介紹了MyBatis的核心配置文件以及映射文件,Mybatis它是一款半自動的ORM持久層框架,具有較高的SQL靈活性,支持高級映射(一對一,一對多),動態(tài)SQL,延遲加載和緩存等特性,但它的數據庫無關性較低,需要的朋友可以參考下
    2023-05-05
  • java Volatile與Synchronized的區(qū)別

    java Volatile與Synchronized的區(qū)別

    這篇文章主要介紹了java Volatile與Synchronized的區(qū)別,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • maven實現docker自動化部署插件的使用

    maven實現docker自動化部署插件的使用

    本文主要介紹了maven實現docker自動化部署插件的使用,分享給大家,感興趣的小伙伴們可以參考一下
    2021-06-06
  • java?SpringBoot?分布式事務的解決方案(JTA+Atomic+多數據源)

    java?SpringBoot?分布式事務的解決方案(JTA+Atomic+多數據源)

    這篇文章主要介紹了java?SpringBoot?分布式事務的解決方案(JTA+Atomic+多數據源),文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-08-08
  • Nacos啟動出現failed to req API:/nacos/v1/ns/instance after all servers問題

    Nacos啟動出現failed to req API:/nacos/v1/ns/insta

    這篇文章主要介紹了Nacos啟動出現failed to req API:/nacos/v1/ns/instance after all servers問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java使用強大的Elastisearch搜索引擎實例代碼

    Java使用強大的Elastisearch搜索引擎實例代碼

    本篇文章主要介紹了Java使用強大的Elastisearch搜索引擎實例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-05-05
  • 解決java連接虛擬機Hbase無反應的問題

    解決java連接虛擬機Hbase無反應的問題

    這篇文章主要介紹了解決java連接虛擬機Hbase無反應的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 詳解MybatisPlus中@TableLogic注解的使用

    詳解MybatisPlus中@TableLogic注解的使用

    @TableLogic一般用于實現數據庫數據邏輯刪除,本文我們將介紹 @TableLogic 注解的用法,以及每個屬性的實際意義和用法,感興趣的可以了解一下
    2022-06-06

最新評論

丰原市| 公主岭市| 萨嘎县| 惠来县| 英德市| 邹平县| 临猗县| 富民县| 巩留县| 广安市| 娱乐| 衡东县| 镇坪县| 鹤壁市| 平定县| 射阳县| 洛宁县| 延安市| 陈巴尔虎旗| 孝昌县| 凌云县| 尼勒克县| 青川县| 苗栗市| 务川| 行唐县| 隆化县| 西藏| 青铜峡市| 泗阳县| 长海县| 绥芬河市| 南漳县| 绍兴市| 普陀区| 临西县| 改则县| 冷水江市| 乐清市| 东阳市| 新源县|