如何在 Java 中將 lambda 表示式與函式式介面一起使用?
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(); //Using Anonymous inner class 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); // using Lambda Expression 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
Рекламное объявление