Java8特性之Lambda表示式
阿新 • • 發佈:2021-02-20
-
Lambda表示式簡介
-
Lambda表示式就是一種匿名函式,如果不瞭解什麼是匿名函式,
-
可以參考:Java匿名內部類
-
Lambda表示式語法:
(argument) -> (body),
例如:
(arg1, arg2) -> {body}
(a1 arg1, a2 arg2) -> {body}
- 下面來看一些例子:
(int a, int b) -> {return a + b;};
(a, b) -> {return a + b; };
(a, b) -> a + b;
上面三句的效果是一樣的
( ) -> {System.out.println("沒有引數的Lambda表示式");};
() -> System.out.println("沒有引數的Lambda表示式");
-
根據以上例子可見,
Lambda表示式可以有零個或多個引數,
引數型別可以指定,也可以根據上下文進行推導,(int a, int b)和(a, b)效果一樣。 -
如果方法體只有一條語句,則可以省略{}。
-
根據Runnable定義一個RunnableIn介面,該介面是一個函式式介面(函式式介面:只包含一個抽象方法的介面)
@FunctionalInterface
public interface RunnableIn {
public abstract int run(int a, int b);
}
public class TestLambda {
public static void main(String[] args) {
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("匿名內部類") ;
}
};
Runnable r2 = () -> System.out.println("Lambda表示式");
RunnableIn r3 = (a, b) -> {return a + b; };
RunnableIn r4 = (int a, int b) -> {return a + b; };
r1.run();
r2.run();
int c = r3.run(1,3);
System.out.println(c);
int d = r4.run(2, 4);
System.out.println(d);
}
}
輸出結果:
匿名內部類
Lambda表示式
4
6
- 由此可見,使用Lambda表示式,直接實現方法,簡化了寫法。
關注不迷路,多寫程式碼,不掉頭髮!