Lambda表达式

作用

  • 避免匿名内部类定义过多
  • 可以使代码看起来很简洁
  • 去掉一堆没有意义的代码,只留下核心的逻辑

前提

  • JDK8以上
  • 必须是函数式接口
    • 任何接口,只包含唯一一个抽象方法

代码

  • 无参
    public static void main(String[] args) {
        ILike like = null;
        //Lambda表达式
        like = () -> {
            System.out.println("I like lambda");
        };
        like.lambda();

    }
}

//函数式接口
interface ILike {
    void lambda();
}
  • 有参
    public static void main(String[] args) {
        ILike like = null;
        //Lambda表达式
        like = (a) -> {
            System.out.println("I like lambda" + " "+ a);
        };
        //Lambda表达式只能有一行代码的情况下才能简化为一行,如果多行就用代码块包裹。
        like = a -> System.out.println("I like lambda" + " "+ a);
        like.lambda(666);

    }
}

//函数式接口
interface ILike {
    void lambda(int a);
}

小结

  • 使用Lambda表达式必须是函数式接口。
  • Lambda表达式只能有一行代码的情况下才能简化为一行,如果多行就用代码块包裹。
  • 去掉多个参数类型类型时,要去掉都去掉,但是必须加上括号。
原文地址:https://www.cnblogs.com/dakuzai/p/13346130.html