是否可以通过方法引用传递参数?

Is it possible to pass argument via method reference?

我有以下代码行:

MyClass{
    Runnable job; 
    ...    
}

和其中一种方法:

this.job = myImporter::importProducts;

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

public void importProducts() {
        ...
}

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

添加新参数后,行:

this.job = myImporter::importProducts;

坏了。

可以修复吗?

不可能 "bind" 和参数直接指向方法引用。在这种情况下,您可以轻松使用 lambda:

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

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

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

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

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