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

标签 java java-8 argument-passing 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) {
    ...
}

这样您的方法引用将像以前一样工作。

关于java - 是否可以通过方法引用传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30704550/

相关文章:

erlang - 理解 spawn 的返回值

x86 - 当我从内联汇编中调用 C++ 函数时,如何将参数传递给它们

java - 二元或运算符

java - 在接收到 Firebase 消息时在 RecyclerView Adapter 中添加列表项

Java 8 DecimalFormat 给出不一致的输出

hibernate - Java JPA Hibernate 连接问题

hash - SASS Mixin参数

java - 什么是java调用

java - 为 Java 和 .NET 实现单一数据访问层

java - 将参数化构造函数作为方法引用传递