我使用lambda函数中的功能方法实现了功能接口。一切正常,除了我得到必须执行此继承的抽象方法(在我的情况下为函数方法)的错误。在这里我很困惑。我使用了lambda函数来实现此功能方法,为什么还要再次实现该方法。如何正确实现功能方法?我的代码:
interface MyFunction {
int getValue(int num); }
class Factorial implements MyFunction {
public static void main (String [] args) {
MyFunction myFactorialFunc = (num) -> {
int fact = 1;
for(int i = 1; i <= num; i++){
fact = i * fact;
}
return fact;
};
System.out.println(myFactorialFunc.getValue(7));
}
}
感谢您的帮助。 :)
您定义了Factorial
类来实现MyFunction
,但是它没有实现该接口(int getValue(int num);
)的方法。
在您的MyFunction
中使用lambda表达式实现的main
实例未为您的Factorial
类实现该接口。
只需将其更改为:
class Factorial {
public static void main (String [] args) {
MyFunction myFactorialFunc = (num) -> {
int fact = 1;
for(int i = 1; i <= num; i++){
fact = i * fact;
}
return fact;
};
System.out.println(myFactorialFunc.getValue(7));
}
}