由于lambda表达式是来实现函数式接口的,所以使用之前需要先定义对应的函数式接口,大量使用会导致代码文件琐碎繁复,因此Java8针对常见的使用的场景,已经内置了大部分函数式接口,只有少部分需要我们自己单独定义;
Java内置了四大核心函数式接口
其他接口
结合lambda表达式和内置函数式接口的代码示例
public void checkSalary(List<Employee> employees, Predicate<Employee> p){
for(Employee employee:employees){
if (p.test(employee)) {
System.out.println(employee.getName());
}
}
}
@Test
public void testLambda(){
List<Employee> employeeList = Arrays.asList(
new Employee("张三",2500,34),
new Employee("李四",4500,45),
new Employee("lisi",3500,35),
new Employee("zhangsan",3000,30));
// 筛选出所有薪水在3000元以上的员工姓名
checkSalary(employeeList,(e)->e.getSalary()>3000);
}
原文:https://www.cnblogs.com/geekHao/p/12441460.html