在Java 8中练习lambdas时,我遇到了以下功能界面。
@FunctionalInterface
interface MyFunctional {
void invokeSame(MyFunctional myFunc);
}
你能告诉我如何为这个功能界面提供lambda表达式吗?
答案 0 :(得分:2)
与任何其他一个参数和void返回类型lambda:
的方式相同MyFunctional f = myFunc -> {};
答案 1 :(得分:0)
概念: java 8中的类型检查lambdas是基于target(作为参数传递给它的函数)完成的。
说明:通常,函数由3个属性定义:
但是传递lambda Java只会检查最后两个。因此,对于上面的功能接口,我们需要lambda,其中[first]参数类型为MyFunctional,返回类型为void。
void doSomething(MyFunctional x) {
...
...
x.invokeSame(...An object/lambda of type MyFunctional...)
}
To call this function
doSomething(varName -> { ...someCode... })