Java8.0支持Lambda表达式,Lambda表达式简化了函数式接口匿名内部类的语法
格式1:(【参数1】,【参数2】,【参数3】)->{代码块};
函数式接口
@FunctionalInterface
public interface IA {
void add(int a,int b);
}
匿名内部类
public class Lambda {
public static void main(String[] args) {
IA A = new IA() {
@Override
public void add(int a, int b) {
System.out.println(a+b);
}
};
A.add(1, 2);
}
}
Lambda表达式
public class Lambda {
public static void main(String[] args) {
IA A = (int a, int b)-> {System.out.println(a+b);};
A.add(1, 2);
}
}
两相对比,可以很好的看出使用Lambda表达式大大简化了代码
格式2
public class Lambda {
public static void main(String[] args) {
IA A = (a, b)-> System.out.println(a+b);
A.add(1, 2);
}
}
格式3
未使用Lambda
@FunctionalInterface
interface IA {
int add(int a,int b);
}
public class Lambda {
public static void main(String[] args) {
IA A = new IA() {
@Override
public int add(int a, int b) {
return a+b;
}
};
int result = A.add(1, 2);
System.out.println(result);
}
}
使用Lambda表达式
@FunctionalInterface
interface IA {
int add(int a,int b);
}
public class Lambda {
public static void main(String[] args) {
IA A = (a,b)-> a+b;
int result = A.add(1, 2);
System.out.println(result);
}
}