Java 8:带有变量参数的 Lambda
我正在寻找一种方法来调用多个参数方法,但使用构造。在文档中,据说只有当它可以映射到功能接口时才可用。lambda
lambda
我想做这样的事情:
test((arg0, arg1) -> me.call(arg0, arg1));
test((arg0, arg1, arg2) -> me.call(arg0, arg1, arg2));
...
有没有办法在不定义10个接口的情况下优雅地做到这一点,每个参数计数一个?
更新
我使用从非方法接口扩展的多个接口,并且重载了该方法。
两个参数的示例:
interface Invoker {}
interface Invoker2 extends Invoker { void invoke(Object arg0, Object arg1);}
void test(Invoker2 invoker, Object ... arguments) {
test((Invoker)invoker, Object ... arguments);
}
void test(Invoker invoker, Object ... arguments) {
//Use Reflection or whatever to access the provided invoker
}
我希望有可能用一个解决方案替换10个调用程序接口和10个重载方法。
我有一个合理的用例,请不要问诸如“你为什么要做这样的事情?”和“你试图解决的问题是什么?”或类似的事情。只要知道我已经想好了,这是我试图解决的合法问题。
很抱歉添加混淆,称它为调用程序,但它实际上是在我当前的用例(测试构造函数合约)中调用的。
基本上,如上所述,请考虑一种在 .lambda