如何在 Java 中将 lambda 表达式与函数式接口结合使用?
java 8object oriented programmingprogramming更新于 2025/4/24 14:22:17
lambda 表达式是匿名函数,没有任何返回类型、访问修饰符,也不属于任何类。它可用于简化函数式 接口中抽象方法的实现。只要有函数式接口,我们就可以使用 lambda 表达式代替匿名内部类。
语法
([comma seperated argument-list]) -> {body}
示例
@FunctionalInterface interface BonusCalculator { public double calcBonus(int amount); } class EmpDetails { public void getBonus(BonusCalculator calculator, int amount) { double bonus = calculator.calcBonus(amount); System.out.println("Bonus: " + bonus); } } public class LambdaExpressionTest { public static void main(String[] args) { EmpDetails details = new EmpDetails(); //使用匿名内部类 EmpDetails details = new EmpDetails(); details.getBonus(new BonusCalculator () { public double calcBonus(int amount) { System.out.println("Bonus Calculation of an Employee using Ananymous inner class"); return amount*2; } },2000); // 使用 Lambda 表达式 details.getBonus((amount) -> { System.out.println("Bonus Calculation of an Employee using Lambda Expression"); return amount*2; },2000); } }
输出
Bonus Calculation of an Employee using Anonymous inner class Bonus: 4000.0 Bonus Calculation of an Employee using Lambda Expression Bonus: 4000.0