【发布时间】:2014-05-30 20:06:59
【问题描述】:
我正在尝试实现类似于代码中给出的内容。我想要一个能够接受任何函数的 lambda 表达式
interface ExecuteAnyCode{
void execute(Object... args);
}
void entry(){
ExecuteAnyCode a = Math::sin;
ExecuteAnyCode b = System.out::println;
a.execute(5);
b.execute("Hello World")
}
但它给了我一个关于传递给函数接口的函数中的参数的错误。有没有办法做到这一点?
【问题讨论】:
-
你遇到了什么错误?
-
Math 类型没有定义适用于此的 sin(Object[])
-
我认为您不了解 lambdas/方法引用的工作原理。
-
我知道 lambdas 是如何工作的我只是想知道是否有任何方法可以做到这一点
-
The type Math does not define sin(Object[]) that is applicable here我认为该评论是对为什么代码不起作用的解释。然后我注意到它是由 OP 发布的,并意识到这是他们得到的错误。
标签: java interface lambda java-8