当前位置: 首页 > 知识库问答 >
问题:

Java8通方法作为参数

欧阳正卿
2023-03-14

目前正在学习Java 8 lambda表达式和方法引用。

我想把一个没有参数和返回值的方法作为参数传递给另一个方法。我就是这样做的:

public void one() {
    System.out.println("one()");
}

public void pass() {
    run(this::one);
}

public void run(final Function function) {
    function.call();
}

@FunctionalInterface
interface Function {
    void call();
}

我知道java中有一组预定义的函数接口。util。功能功能


共有2个答案

柴兴贤
2023-03-14

你也可以这样传递lambda:

public void pass() {
    run(()-> System.out.println("Hello world"));
}

public void run(Runnable function) {
    function.run();
}

这样,您将直接传递lambda作为方法。

邓业
2023-03-14
匿名用户

这真的不重要<代码>可运行也可以。

Consumer<Void>,
Supplier<Void>,
Function<Void, Void>

 类似资料:
  • 主要内容:1 Java8 方法参数反射的介绍,2 Method类,3 Method类的方法,4 Parameter类,5 Parameter类的方法,6 Java8 方法参数反射的案例1 Java8 方法参数反射的介绍 Java提供了一项新功能,您可以在其中获得任何方法或构造函数的形式参数的名称。java.lang.reflect包包含所有必需的类,例如Method和Parameter,可用于参数反射。 2 Method类 Method类提供有关类或接口上的单个方法的信息。反射的方法可以是类方法

  • 问题内容: 我正在寻找一种通过引用传递方法的方法。我知道Java不会将方法作为参数传递,但是,我想找到一种替代方法。 有人告诉我接口是将方法作为参数传递的替代方法,但我不了解接口如何通过引用充当方法。如果我理解正确,那么接口就是一组未定义的抽象方法。我不想发送每次都需要定义的接口,因为几种不同的方法可以使用相同的参数调用同一方法。 我要完成的工作与此类似: 调用如: 问题答案: 编辑:从Java

  • 问题内容: 当前正在学习Java 8 lambda表达式和方法参考。 我想将不带参数且没有返回值的方法作为参数传递给另一个方法。这就是我的做法: 我知道有一组预定义功能接口的,如,但我没有找到一个不带任何参数,而不是产生结果。 问题答案: 真的没关系;也会做。

  • 问题内容: 我试图将选择的A类“获取”方法传递给B类中的方法。我已经将Java PassMethod作为Parameter签出,但是我无法以合理的方式采用接口方法解决问题。我宁愿 不 使用Java 8(lambdas),并尽可能避免反射。我的感觉是,我以错误的方式看待自己的问题。这是我要完成的工作的特定简化示例: 我有一个包含一些字段和get-method的类: 接下来,我将主类实例化为Map的V

  • 问题内容: 下面的代码之间有什么区别?将参数声明为是有什么好处? 问题答案: 由于形式方法的参数是局部变量,因此只有在内部匿名类被声明为final的情况下,您才能从内部匿名类访问它们。 这使您不必在方法主体中声明另一个局部最终变量:

  • 我有静态方法在我的类 这就是定义 这里用的是 这是我得到的一个错误 E0167类型为“void(TV_DepthCamAgent::)(int count,int copied_file)”的参数与类型为“void()(int,int)”的参数不兼容 错误C3867“TV_DepthCamAgent::progress_callback”:非标准语法;使用' 我做错了什么?