1. 程式人生 > 其它 >Docker下載映象巨慢

Docker下載映象巨慢

技術標籤:Java

什麼是函式式介面 ?

任何介面,如果只包含唯一一個抽象方法,那麼它就是一個函式式介面。
對於函式式介面,我們可以通過 Lambda 表示式來建立該介面的物件。

推導Lambda表示式

首先宣告一個函式式介面

  1. 普通的介面實現類
  2. 靜態內部類
  3. 區域性內部類
  4. 匿名內部類
  5. Lambda表示式
package com.zhang.lambda;

/*
#### 推導 Lambda 表示式
 */
public class TestLambda1 {

    //3.靜態內部類
    static class Like2 implements ILike {
        @Override
public void lambda() { System.out.println("I like lambda2..."); } } public static void main(String[] args) { ILike like = new Like(); like.lambda(); like = new Like2(); like.lambda(); //4.區域性內部類 class Like3
implements ILike { @Override public void lambda() { System.out.println("I like lambda3..."); } } like = new Like3(); like.lambda(); //5.匿名內部類,沒有類的名稱,必須藉助介面或者父類 like = new ILike() { @Override
public void lambda() { System.out.println("I like lambda4..."); } }; like.lambda(); //6.用 lambda 簡化, 由於只有一個介面,且其中只有一個方法,只需保留方法體即可 like = () -> { System.out.println("I like lambda5..."); }; like.lambda(); } } //1.定義一個函式式介面 interface ILike { void lambda(); } //2.實現類 class Like implements ILike { @Override public void lambda() { System.out.println("I like lambda..."); } }

Lambda 表示式的簡化

  1. 去掉引數型別
  2. 簡化括號
  3. 去掉 {}
package com.zhang.lambda;

public class TestLambda2 {

    public static void main(String[] args) {

        // lambda表示簡化
        ILove love = (int a) -> {
                System.out.println("I love you -> " + a);
            };

        //簡化1:引數型別
        love = (a) -> {
            System.out.println("I love you ->" + a);
        };

        //簡化2:簡化括號
        love = a -> {
            System.out.println("I love you ->" + a);
        };

        //簡化3:去掉 {}
        love = a -> System.out.println("I love you ->" + a);

        love.love(520);
    }

}

interface ILove {
    void love(int a);
}

/*
總結:
    1.lambda表示式只能有一行程式碼的情況下才能簡化成為一行,如果有多行,那麼就用程式碼塊包裹。
    2.前提是介面為函式式介面(接口裡面只有一個方法)
    3.多個引數也可以去掉引數型別,要去掉就都去掉,必須加上括號
 */

筆記來源 : https://www.bilibili.com/video/BV1V4411p7EF