如何在 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

更新于:10-Jul-2020

687 次浏览

Стартуйте свою карьеру

Получите сертификат, пройдя курс

Начать
Рекламное объявление
© . All rights reserved.