JDK1.8新特性--Lambda表示式
/* 一、Lambda 表示式的基礎語法:Java8中引入了一個新的操作符“->”
* 該操作符為箭頭操作符或Lambda操作符,箭頭操作符將Lambda表示式
* 拆分成兩部分
* 左側:Lambda 表示式的引數列表
* 右側:Lambda表示式中所需執行的功能,即Lambda體
*
* 語法:
* 語法格式一:無參無返回值
* ()->System.out.println("Hello World");
* 語法二:有一個引數,並且無返回值
* (x)-> System.out.println(x)
* 語法三:若有一個引數,小括號可以不寫
* x-> System.out.println(x)
* 語法四:有兩個以上的引數,並且 Lambda 體中有多條語句,有返回值
* (x,y)->{
* System.out.println("Hello World");
* return Integer.compare(x,y);
* };
* 語法格式五:若 Lambda 體只有一條return語句,那麼大括號和return都可以 不寫
* (x,y)->Integer.compare(x,y);
* 語法格式六:lambda 表示式的引數列表的資料型別可以省略不寫,因為JVM編譯器會
* 通過上下文推斷出資料型別,即型別推斷;
*/
public class TestLambda2{
//語法格式一:無參無返回值
@Test
public void test1(){
int num=0;//jdk1.7在匿名內部類中呼叫區域性變數需要加final
//jdk1.8之後,預設新增
Runnable runnable=new Runnable() {
@Override
public void run() {
System.out.println("Hello World");
}
};
System.out.println("**********");
Runnable runnable1=()-> System.out.println("Hello World");
}
//語法二:有一個引數,並且無返回值
@Test
public void test2(){
Consumer<String> consumer=(x)-> System.out.println(x);
consumer.accept("Hello World");
}
//語法四:有兩個以上的引數,並且 Lambda 體中有多條語句,有返回值
@Test
public void test3(){
Comparator<Integer> comparator=(x,y)->{
System.out.println("Hello World");
return Integer.compare(x,y);
};
}
//語法格式五:若 Lambda 體只有一條return語句,那麼大括號和return都可以不寫
@Test
public void test4(){
Comparator<Integer> comparator=(x,y)->Integer.compare(x,y);
}
}
/* 二、Lambda 表示式需要“函式式介面”的支援
* 函式式介面:介面中只有一個抽象方法的介面,稱為函式式介面。可以使用註解
* @FunctionalInterface
* java1.8 內建的四大核心函式式介面
*
* Consumer<T>:消費性介面
* void accept(T t);
* Supplier<T>:供給性介面
* T get();
* Function<T,R>:函式型介面
* R apply(T t);
* Predicate<T>:斷言型介面
* boolean test(T t);
*/
相關文章
- jdk1.8新特性:Lambda表示式JDK
- JDK1.8新特性之Lambda表示式JDK
- JDK1.8新特性之Lambda表示式()->JDK
- jdk1.8 新特性之 lambda表示式JDK
- JDK1.8的新特性之Lambda表示式JDK
- jdk1.8 新特性之 如何寫lambda表示式JDK
- JDK1.8最新特性--Lambda表示式(重點)JDK
- JDK1.8新特性:Lambda表示式語法和內建函式式介面JDK函式
- [Java學習筆記]JDK1.8新特性學習(一)Lambda表示式Java筆記JDK
- JDK1.8之lambda表示式JDK
- JDK1.8 之Lambda表示式JDK
- Java 8新特性(一):Lambda表示式Java
- .NET3.5新特性,Lambda表示式
- JDK 1.8 新特性之Lambda表示式JDK
- Java8新特性(1):Lambda表示式Java
- Java8新特性(一)-Lambda表示式Java
- java8 新特性之Lambda 表示式Java
- JDK新特性-Lambda表示式的神操作JDK
- java-反射,介面新特性,Lambda表示式Java反射
- Java8 新特性之 Lambda 表示式Java
- C++11新特性之Lambda表示式C++
- .net framework3.5新特性:Lambda表示式Framework
- jdk1.8 lambda表示式入門JDK
- java8新特性之lambda表示式(一)Java
- JDK1.8及以上的Lambda表示式JDK
- JDK1.8 Lambda 表示式的學習JDK
- Java8新特性第1章(Lambda表示式)Java
- JDK1.8中Lambda表示式的應用JDK
- java8特性-lambda表示式Java
- Java8新特性——從Lambda表示式到Stream流Java
- Java 8新特性:lambda表示式(四)轉載總結Java
- 【原創】.net framework3.5新特性1:Lambda表示式Framework
- JDK1.8之Lambda解析與表示式的使用JDK
- java8的新特性之lambda表示式和方法引用Java
- JDK8+的lambda(λ)表示式特性JDK
- Java 8 流特性和 Lambda 表示式Java
- C#10新特性-lambda 表示式和方法組的改進C#
- C#特性-匿名方法和Lambda表示式C#