什么是Lambda表达式
从Java 8开始,为了简化函数式接口匿名内部类的语法,新增了Lambda表达式。
语法格式如下:
(参数列表)->{
代码块
};
实例
使用Lambda表达式简化前通过函数式接口匿名内部类实现接口
@FunctionalInterface
interface IComputer {
int add(int a,int b);
}
public class Test {
public static void main(String[] args) {
IComputer computer = new IComputer(){
@Override
public int add(int a, int b) {
System.out.println("成功!");
return a+b;
}
};
computer.add(1, 2);
}
}
使用Lambda表达式后
@FunctionalInterface
interface IComputer {
int add(int a,int b);
}
public class Test {
public static void main(String[] args) {
computer = (int a,int b)->{
return a+b;
};
computer.add(1, 2);
}
}
简化
如果没有返回值只有一行代码或者有返回值且只有一行代码,以上面例子为例则可简化为:
@FunctionalInterface
interface IComputer {
int add(int a,int b);
}
public class Test {
public static void main(String[] args) {
computer = (int a,int b)->a+b;
computer.add(1, 2);
}
}
@FunctionalInterface
interface IComputer {
int add(int a,int b);
}
public class Test {
public static void main(String[] args) {
computer = (int a,int b)->System.out.println("成功!");;
computer.add(1, 2);
}
}