Java之Lambda表示式 方法引用

2021-09-01 02:51:47 字數 1787 閱讀 1542

本片部落格主要介紹介紹jdk1.8推出的新特性

jdk1.8之後介面出現以下兩類方法:

a.在介面中使用default定義的普通方法,需要通過介面物件來呼叫

b.在介面中使用static定義的靜態方法,直接使用介面呼叫。

範例:

inte***ce iinte***ce

//使用static定義的靜態方法

lambda表示式是函式式程式設計。

要想使用函式式程式設計有乙個前提條件:介面必須只有乙個方法,如果存在兩個以上的方法,無法使用函式式程式設計。

範例:函式式程式設計

@functionalinte***ce

inte***ce iadd

public class test

}

如果現在某個介面就是為了函式式程式設計而生的,在定義時只能存在乙個方法,因此有乙個新的注釋**@functionalinte***ce,此注釋會檢查該介面中是否只能存在乙個抽象方法,存在抽象方法兩個以上會編譯報錯**

lambda表示式語法:

1.方法體只有一行**時:

(方法引數)->具體的方法體實現

當方法體有返回值時,單行**的lambda表示式可以省略return語句

範例:方法體有返回值

inte***ce iadd 

public class test

}

2.當方法體有多行**時,

(方法引數)->;

範例:

inte***ce iadd 

public class test ;

int ret=add.add(1,2);

system.out.println(ret);//23}}

方法引用只是給現有方法起了個別名方法引用四種形式:

1.引用類中靜態方法

類名稱::static 方法名稱

範例:

inte***ce iinte***ce

public class test

}

2.引用某個物件的方法

例項化物件::普通方法

範例:

inte***ce iutil

public class test

}

3.呼叫類中普通方法

類名稱::普通方法名

inte***ce iutil

public class test

}

4.引用類中的構造方法

類名稱::new

class person 

@override

public string tostring()

}@functionalinte***ce // 是乙個函式式程式設計介面,只允許有乙個方法

inte***ce iutil

public class test

}

還有乙個內建函式式介面,暫時看不懂…等以後會了再補充~~~~

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...

Java8之Lambda表示式

intstream.range 1000,10000 filter v v 1000 v 1000 v 1000 v 100 v 100 v 100 v 10 v 10 v 10 v foreach system.out println 上面的表示式中多處用到lamnda表示式以及stream ap...

java學習 lambda表示式

public class lambda public static void main string args sort函式的第二個引數需要乙個實現了comparator介面的類的物件 arrays.sort strings,new lengthcomparator for string str s...