我正在尝试完成Java中的方法传递。
这是我要作为一个虚拟示例进行的鸟瞰图:
public final class A {
private String value;
public A(String value) {
this.value = value;
}
public final Object bind(Function<String, String> func) {
this.value = func.apply(value);
return this;
}
// Rest of the logic here to deal with `value`
}
public final class B {
public static void main(String[] args) {
A<T> a = new A("hello");
a.bind(B::methodOne).bind(B::methodTwo);
}
private String methodOne(String s) {
// method logic here
return "haha";
}
private String methodTwo(String s) {
// method logic here
return "hi";
}
}
因此,基本上,我在一个类中有方法,在上面的示例中是B,我想将B的方法传递给A,并将B的该方法的返回值存储在A上以进行进一步处理。
[我试图利用Java的method reference
功能,但是由于我每天都不使用Java编写代码,因此在满足上述约束的同时,我很难理解如何正确完成此工作。] >
当前,在主方法中进行绑定时出现incompatible types: invalid method reference
错误。
根据我对程序的限制进行了更改。
我正在尝试完成Java中的方法传递。这是我要作为一个虚拟示例进行的鸟瞰图:public final class A {private String value;公共A(字符串值){...
您正在静态上下文中编写表达式B::methodOne
。
编辑:询问者在阅读了此答案后更新了很多问题。至关重要的是,最初每种方法都具有完全不同的签名(不同的参数类型和数量以及不同的返回类型)。我保留了这个答案,请注意,它不再与当前的问题特别相关。