10-12有一个函数式接口Calculator,它包含单一的calculate()抽象方法,另外它还包含两个默认方法,定义如下。 @Funct ional Interface public interface Calculator{ publice abstract double calculate(inta, intb); // 唯一的抽象方法 public default int subtract(inta, int b){
时间: 2024-01-26 20:03:03 浏览: 80
public int subtract(int a, int b){
return a - b;
}
public default int add(int a, int b){
return a + b;
}
}
其中,@FunctionalInterface注解用于表示该接口是一个函数式接口,即只包含一个抽象方法的接口。因此,Calculator接口可以被用作Lambda表达式的目标类型。
你可以通过实现Calculator接口并提供calculate()方法的具体实现来创建一个Calculator对象。例如:
Calculator calc = (a, b) -> a * b;
这个Lambda表达式实现了Calculator接口的calculate()方法,将两个整数相乘作为计算过程。你还可以使用默认方法subtract()和add()来进行减法和加法运算。例如:
int result = calc.calculate(3, 4); // result = 12
int difference = calc.subtract(7, 2); // difference = 5
int sum = calc.add(3, 4); // sum = 7
相关问题
有一个函数式接口Calculator,它包含单一的calculate()抽象方法,另外它还包含两个默认方法,定义如下。 @Functional Interface public interface Calculator{ public abstract double calculate(inta, intb){ // 唯一的抽象方法 public default int subtract(inta, int b){ return a - b; } public default int add(int a, int b){ return a + b; } } 编写程序,使用Lambda表达式实现calculate()方法,使该方法可以计算 (a+b)/2
可以使用Lambda表达式实现该方法,代码如下:
```
Calculator calculator = (a, b) -> (a + b) / 2.0;
double result = calculator.calculate(5, 7);
System.out.println(result); // 输出6.0
```
其中Lambda表达式`(a, b) -> (a + b) / 2.0`实现了`calculate()`方法的逻辑。在主函数中,我们创建了一个`Calculator`对象,并调用`calculate()`方法计算`(5 + 7) / 2`的结果,最终输出结果`6.0`。注意,Lambda表达式的参数个数和类型必须与函数式接口中唯一的抽象方法的参数个数和类型相匹配。
阅读全文