1. 程式人生 > 其它 >Java8特性之Lambda表示式

Java8特性之Lambda表示式

技術標籤:Java基礎lambda

  • 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表示式,直接實現方法,簡化了寫法。

關注不迷路,多寫程式碼,不掉頭髮!
在這裡插入圖片描述