java - 如何将一个方法作为参数传递给另一个方法?

标签 java method-reference

我有一个方法,比如说ClassA。我想将 ClassB 中的方法作为参数传递给 ClassA 中的该方法。在本例中,我想传递来自 ClassBgetCode 方法。我没有任何 ClassB 实例,并且我希望无需创建实例即可实现此目的。

我尝试过使用简单的方法引用,但它不起作用。 我也不想将 getCode 设为静态方法。

public class ClassA {

   public void validate() {
       Validation validation = new Validation(ClassB::getCode, code);
       //...
   }

}

我的最终目标是拥有一个 RequestValidator 类,其中添加验证,每个验证都将使用特定方法和其构造函数中的字符串创建,在本例中是来自 classB 和代码的 getCode。请注意,我只需要一个 RequestValidator 实例。像这样的事情:

RequestValidator validator = new RequestValidator<>()
        .addValidation(new Validation(ClassB::getCode, code))
        .addValidation(new Validation(ClassB::getName, name));

最佳答案

getCode 需要是静态函数,语法为 ClassB.getCode。您需要将 ClassB 导入到 ClassA 中。

参见:

Calling static method from another java class

关于java - 如何将一个方法作为参数传递给另一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56530189/

相关文章:

java - 如何从意图菜单创建实例方法而不是静态方法

lambda - 组合对特定类型的任意对象的实例方法的引用

java - 在构造函数具有非空参数列表的情况下使用构造函数引用

Java8 : About Functional Interface

java - 如何从 xml 生成 xslt 文件

java - 回顾中的反向引用

java - Arrays.equals() 的时间复杂度

java - 如何在 java8 中使用方法引用打印多个参数

java - 如何附加ORC文件

java - Android fragment Activity