什么是lambda表达式
2020-09-21 本文已影响0人
小白菜aaa
简介
本文主要概括了其lambda表达式的用法和一个操作实例,希望大家看完这篇文章能对你有些帮助。
lambda表达式
是什么
是一个没有名字的函数
用法
无参数,不可省略参数的括号
() -> System.out.println("lambda");
一个参数,可省略参数外的括号
x -> System.out.println(x);
多个参数,不可省略参数的括号
(x, y) -> System.out.println(x + y);
单条语句,可省略语句的大括号
() -> System.out.println("lambda");
多条语句,语句需要加大括号
() -> {
System.out.println("lambda1");
System.out.println("lambda2");
};
参数类型可省略,根据要实现的接口的方法能推导出来
如果只有一个语句,也可省略return关键字
示例
无返回值无参数
只有一个抽象方法的接口
public interface FunctionInterface{
void play();
}
测试类
public class Lambda{
public static void main(String[] args){
// 匿名内部类的写法
FunctionInterface functionInterface1 = new FunctionInterface(){
@Override
public void play(){
System.out.println("a");
}
};
functionInterface1.play();
// lambda表达式的写法
FunctionInterface functionInterface2 = () -> System.out.println("a");
functionInterface2.play();
}
}
输出结果
a
a
无返回值有参数
public interface FunctionInterface{
void play(String s);
}
public class Lambda{
public static void main(String[] args){
// 匿名内部类的写法
FunctionInterface functionInterface1 = new FunctionInterface(){
@Override
public void play(String s){
System.out.println(s);
}
};
functionInterface1.play("a");
// lambda表达式的写法
FunctionInterface functionInterface2 = (s) -> System.out.println(s);
functionInterface2.play("a");
}
}
a
a
有返回值无参数
public interface FunctionInterface{
int play();
}
public class Lambda{
public static void main(String[] args){
// 匿名内部类的写法
FunctionInterface functionInterface1 = new FunctionInterface(){
@Override
public String play(){
return "a";
}
};
System.out.println(functionInterface1.play());
// lambda表达式的写法,此处可省略return,如果要用return,需要加大括号
FunctionInterface functionInterface2 = () -> "a";
// FunctionInterface functionInterface2 = () -> {return "a"};
System.out.println(functionInterface2.play());
}
}
a
a
总结
lambda表达式代替了匿名内部类的写法
参数、返回值类型和要实现的接口的方法参数、返回值类型对应,语句表达式就是方法体
本文到这里就结束了,感谢看到最后的朋友,都看到最后了,点个赞再走啊,如有不对之处还请多多指正。