提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Lambda表达式是函数式编程的语法,Lambda表达式带来了行为参数化,下面从Lambda表达式基本语法开始介绍。
一、什么是lambda表达式?
Lambda表达式是一种匿名函数
我们知道传统java中给按钮添加事件方法是采用匿名内部类的方式
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("按钮点击");
}
}
);
而采用Lambda表达式:
button.addActionListener(
event -> System.out.println("按钮被点击"));
可以看出Lambda表达式是一种行为参数化,即把一个方法的参数传入到另外一个方法中
这里采用的是Java提供的类型推断,帮我们产生了ActionListener对象。
二、lambda表达式语法
1.基本语法
(形参列表) -> {代码块} 👇
@FunctionalInterface
public interface Calculator {
String operation(String a, String b);
public static void main(String[] args) {
Calculator calculator = (String a, String b) -> {
return "大家好,我叫:" + a + ",我今年:" + b + "岁,我今天学习了Lambda表达式";
};
System.out.println(calculator.operation("小明", "18"));
}
}
注:Lambda表达式的目标必须是一个函数接口(有且仅只有一个抽象方法的接口),可以通过@FunctionalInterface 注解来修饰接口表示函数接口。
2.特殊语法
1.函数接口的抽象方法里面是无参的,表达式左边的内容只需要打上空括号
2.抽象方法的实现的代码只有一句,表达式右边的"{ }"或者是return是可以忽略掉的
3.抽象方法是带有参数的,那么左边是可以忽略参数的数据类型和参数名
4.抽象方法只有一个形参,左边的"( )"是可以省略的