Java中的传递方法

问题描述 投票:1回答:2

我正在尝试完成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(字符串值){...

java generics method-reference
2个回答
1
投票

您正在静态上下文中编写表达式B::methodOne


3
投票

编辑:询问者在阅读了此答案后更新了很多问题。至关重要的是,最初每种方法都具有完全不同的签名(不同的参数类型和数量以及不同的返回类型)。我保留了这个答案,请注意,它不再与当前的问题特别相关。

© www.soinside.com 2019 - 2024. All rights reserved.