【发布时间】:2023-03-07 03:37:01
【问题描述】:
我只是想写一个功能接口来理解不同的用例。
看看我写的下面的代码,我知道我可以使用 lambda 表达式有不同的实现。除此之外,任何人都可以展示复杂的实现吗?
是否可以在 lambda 表达式中使用其他默认方法,即 addLikeOtherWay?如果是的话,在我的例子中如何?
为什么我的接口只有一种抽象方法?在我的界面中只有一个抽象方法的用例是什么?
public class Calculator {
public static void main(String[] args) {
ICalculator i = (int a, int b) -> a + b;
System.out.println(i.add(5, 2));
i = (int a, int b) -> a + b + a;
System.out.println(i.add(5, 2));
}
}
@FunctionalInterface
interface ICalculator {
public int add(int a, int b);
default int addLikeThis(int a, int b) {
return a + b;
}
default int addLikeOtherWay(int a, int b) {
return a + b + a + b;
}
}
【问题讨论】:
-
重复链接无法回答我的大部分问题
-
FunctionalInterface的目标是允许您从中制作 lambda,因此它是抽象的,因为实现将是 lambda -
是否可以在 lambda 表达式中使用其他默认方法,即 addLikeOtherWay? 这里的 “在 lambda 表达式中” 到底是什么意思?我的意思是你可以调用
i.addLikeOtherWay(5, 2)来确定调用该方法。 -
为什么我的接口只有一个抽象方法?在我的界面中只有一个抽象方法的用例是什么? ...拥有functional interface is its representation as lambda 的用例之一,除此之外,您的界面可能不仅仅需要作为一个功能界面,这取决于您如何设计界面。
标签: java java-8 functional-programming functional-interface