是否可以通过方法引用传递参数?
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) {
...
}
这样您的方法参考将像以前一样工作。
我有以下代码行:
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) {
...
}
这样您的方法参考将像以前一样工作。