我有以下代码行:
MyClass{
Runnable job;
...
}
并在其中一种方法中:
this.job = myImporter::importProducts;
现在
importProducts
是不带参数的方法:public void importProducts() {
...
}
但是我现在需要向该方法添加参数。
添加新参数后,行:
this.job = myImporter::importProducts;
坏了。
有可能修复它吗?
最佳答案
不能直接将“绑定”和参数“绑定”到方法引用。在这种情况下,您可以轻松使用lambda:
this.job = () -> myImporter.importProducts(myNewArgument);
或者,如果适合您的情况,请考虑保留零参数
importProducts
方法,该方法仅使用适当的参数值调用一参数importProducts
:public void importProducts() {
importProducts(myNewArgument);
}
private void importProducts(Type arg) {
...
}
这样,您的方法引用将像以前一样工作。