1. Lambda表达式

例一:

我们在创建线程并启动的时候匿名内部类写法

  1. public static void main(String[] args) {
  2. new Thread(new Runnable() {
  3. @Override
  4. public void run() {
  5. System.out.println("线程被启动了");
  6. }
  7. }).start();
  8. }

一个接口的内部类,并且只有一个方法要被重写,可以使用Lambda表达式 (参数列表 )->{ 方法体 }

    public static void main(String[] args) {
        new Thread(()->{
            System.out.println("线程被启动了");
        }).start();
    }

例二:

    //原始内部类写法
    public static void main(String[] args) {
        calculateNun(new IntBinaryOperator() {
            @Override
            public int applyAsInt(int left, int right) {
                return left + right;
            }
        });
    }
    //Lambda写法
    public static void main(String[] args) {
        int i = calculateNun((int x, int y) -> {
            return x + y;
        });
        System.out.println(i);
    }

    public static int calculateNun(IntBinaryOperator operator){
        int a=10,b=20;
        return operator.applyAsInt(a,b);
    }