我正在寻找一种方法来调用多个参数方法,但使用一个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.