如何在 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
Рекламное объявление
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP