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