2

我有以下代码行:

MyClass{
    Runnable job; 
    ...    
}

并在其中一种方法中:

this.job = myImporter::importProducts;

现在importProducts是没有参数的方法:

public void importProducts() {
        ...
}

但是我现在需要为这个方法添加参数。

添加新参数后,行:

this.job = myImporter::importProducts;

坏了。

有可能修复它吗?

4

1 回答 1

2

不可能直接“绑定”和参数到方法引用。在这种情况下,您可以轻松使用 lambda:

this.job = () -> myImporter.importProducts(myNewArgument);

或者,如果它适合您的情况,请考虑保留零参数importProducts方法,该方法仅调用importProducts具有正确参数值的单参数:

public void importProducts() {
    importProducts(myNewArgument);
}

private void importProducts(Type arg) {
    ...
}

这样,您的方法参考将像以前一样工作。

于 2015-06-08T08:47:36.727 回答