1 lamda表达式的意义:简化冗余的代码
2 lamda表达式的标准格式;(重写方法的参数列表) -> {重写接口的抽象方法}
举例:无参数无返回值的lambda表达式
//自定义一个抽象接口,里面有一个抽象方法叫做makefood
package com.bed.lambdainvoke;
public interface Cook {
public abstract void makeFood();//定义一个抽象方法。
}
//主程序
package com.bed.lambdainvoke;
public class InvokeCook {
public static void main(String[] args) {
//使用匿名内部类的方法
invokeCook(new Cook() {
@Override
public void makeFood() {
System.out.println("开始做饭");
}
});
//使用lambda表达式
invokeCook(()->{
System.out.println("开始做饭");
});
}
//将Cook接口作为参数传递进来,并重写其中的方法makefood
public static void invokeCook(Cook cook){
cook.makeFood();
}
}
举例:有参数有返回值的lambda表达式(此处的匿名内部类就是 new Comparator比较器)
package com.bed.lambdainvoke;
import java.util.Arrays;
import java.util.Comparator;
//对一个Person类集合,按照年龄进行排序
public class AgeSort {
public static void main(String[] args) {
Person[] arr = {
new Person("bed", 48),
new Person("bed2", 38),
new Person("bed3", 28)
};
//使用Arrays.sort方法,将arr作为参数传递进去
//新建Comparator<Person>匿名内部类比较器
//并重写其中的排序方法,改为按照年龄进行排序
Arrays.sort(arr, new Comparator<Person>() {
@Override
public int compare(Person person, Person t1) {
return person.getAge()-t1.getAge();
}
});
//使用lambda表达式
Arrays.sort(arr,(Person person, Person t1)->{
return person.getAge()-t1.getAge();
});
for (Person person : arr) {
System.out.println(person);
}
}
}
举例:自定义有参有返回值的接口,使用lambda表达式实现相加运算
//定义一个只有简单抽象方法的计算器接口
package com.bed.lambdainvoke;
public interface Calc {
public abstract int sumab(int a,int b);
}
//主程序
package com.bed.lambdainvoke;
public class SUM {
public static void main(String[] args) {
//老方法
/* invokeCalc(1, 1, new Calc() {
@Override
public int sumab(int a, int b) {
return a+b;
}
});*/
//使用lambda表达式
invokeCalc(120,130,(int a,int b)->{return a+b;});
}
public static void invokeCalc(int a,int b,Calc calc){
int sum=calc.sumab(a,b);
System.out.println(sum);
}
}
总结:当使用匿名内部类重写接口中的抽象方法时。使用lambda表达式很方便。
3lambda接口的省略原则:

4lambda接口的使用注意事项:

有且仅有一个抽象方法的接口就称之为函数式接口
本文探讨了Java Lambda表达式的重要性和使用,旨在简化冗余代码。通过介绍标准格式及多个示例,如无参数无返回值、有参数有返回值的lambda表达式,展示了如何替代匿名内部类。同时,文章还提到了lambda接口的省略原则和使用注意事项,特别是针对函数式接口的应用。
5067

被折叠的 条评论
为什么被折叠?



