Lambda表达式使用前提:

  1、有一个接口;

  2、接口有且只有一个抽象方法。

Lambda表达式的标准格式:(形式参数) -> {代码块}如果有多个形式参数,逗号隔开,没有参数留空即可。

组成Lambda表达式的三要素:形式参数、箭头、代码块

分析:

  ():里面是形式参数,没有就是空的,有多个就逗号隔开;

  ->    :由英文中划线和大于符合组成,固定写法,代表指向动作;

  { }    :大括号就是代码块,里面的内容是具体要写的方法内容。

Lambda表达式的省略格式:a、参数类型可以省略;

              b、如果参数有且仅有一个,小括号可以省略;

              c、如果代码块语句只有一条,大括号、分号可以省略,甚至是return。

 

复制代码
public class LambdaTest {

    public static void main(String[] args) {

      // 使用方法

      CalculatorTest ct = (k, l) -> k + l;

      int i = ct.calc(10, 10);

      System.out.println(i);

 

        useShowTest(() -> {
            System.out.println("我是Lambda表达式调用的无参无返回值方法");
        });

        useShowTest1((int num) -> {
            System.out.println("我是Lambda表达式调用的有参无返回值方法");
        });

        int a = useRandomNumTest(() -> {
            Random r = new Random();
            int num = r.nextInt(10) + 1;
            return num;
        });
        System.out.println("我是Lambda表达式调用的无参有返回值方法返回的结果----" + a);

        int z = useCalculatorTest((int m, int n) -> {
            return m - n;
        });
        System.out.println("我是Lambda表达式调用的有参有返回值方法返回的结果----" + z);

        String s = useOmissionTest(msg -> "这是Lambda表达式的省略格式。。。");
        System.out.println(s);
    }

    public static void useShowTest(ShowTest s) {
        s.show();
    }

    public static void useShowTest1(ShowTest1 s1) {
        s1.show1(10);
    }

    public static int useRandomNumTest(RandomNumTest r) {
        return r.getNum();
    }

    public static int useCalculatorTest(CalculatorTest c) {
        return c.calc(28, 10);
    }

    public static String useOmissionTest(OmissionTest o) {
        return o.omission("");
    }

}

interface ShowTest {
    void show();
}

interface ShowTest1 {
    void show1(int num);
}

interface RandomNumTest {
    int getNum();
}

interface CalculatorTest {
    int calc(int m, int n);
}

interface OmissionTest {
    String omission(String msg);
}
复制代码