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

如何传递带有单个参数的Java8 lambda

通博实
2023-03-14

我只想传递一个lambda(代码块),并在需要时执行它。如何在下面的代码中实现方法executeLambda(...)(以及方法签名是什么):

public static void main(String[] args)
{
    String value = "Hello World";
    executeLambda(value -> print(value));
}

public static void print(String value)
{
    System.out.println(value);
}

public static void executeLambda(lambda)
{
    someCode();
    lamda.executeLambdaCode();
    someMoreCode();
}

共有1个答案

娄学文
2023-03-14

lambda接受一个参数,但只将lambda传递给executelambda,而不是值。如果您希望lambda捕获局部变量,就不要使用一个参数编写它,但是如果您确实希望它使用一个参数,那么您可以这样编写它:

import java.util.function.Consumer;

public static void main(String[] args) {
    String message = "Hello World";
    executeLambda(message, value -> print(value));
}

public static void executeLambda(String value, Consumer<String> lambda) {
    lambda.accept(value);
}

如果希望它捕获value,则使用runnable,将lambda编写为()->print(value),并像runnable.run()那样调用它。

 类似资料:
  • 问题内容: 我有一个简单的Python脚本,可以接收用户名和密码作为参数,但是我的密码包含两个感叹号。当我像这样调用脚本时 我之前输入的命令将替换感叹号: 我可以使用反斜杠()避开感叹号,但密码会更改。 是否有解决方案,如何在不更改密码的情况下转义感叹号? 问题答案: 您应该能够简单地在外壳中用单引号引起来。

  • 将函数传递给另一个函数的Scala示例缺少传递的函数(时间段)接受参数(x)的情况。 我怎样才能使上述代码工作? 编辑:我在oncepersecond中添加了一个x,以明确目标是传递整数。

  • 我在下面尝试将一个参数发送到单独的功能文件(通过下面的示例),但它没有按预期工作。 project.feature 删除项目。特色 低于异常 通用域名格式。凭直觉。空手道。例外KarateException:项目。功能:48-删除_项目。功能:11-状态代码为:404,预期为:200,响应时间:239,url:https://localhost:8080/project/#(id)响应:{“状态”

  • 问题内容: 假设我有这个功能: 我想这样称呼它: 当然,不能用这种方法来完成,因为Postgres试图用该名称和三个不存在的参数来查找函数。 我试图用引号引起来,但在这种情况下,参数解释错误: data1’,’data2’,’data3 ,就像一个字符串一样。 有没有一种方法可以在参数中放置多个值,以便IN子句可以识别它? 问题答案: 您的函数将不会被创建。之后是句法废话。 无论哪种方式,带有 参

  • 问题内容: 我试图弄清楚如何在URL中传递多个参数。我想将纬度和经度从我的android类传递给Java servlet。我怎样才能做到这一点? 在这种情况下,输出(写入文件)为。这是可行的,但我想在两个单独的参数中传递纬度和经度,以便减少在服务器端的工作。如果不可能,我如何至少在&之间添加一个空格,以便可以使用class获取经度和纬度。我试过以下行,但无济于事。 我的servlet代码如下: 我

  • 本文向大家介绍在 mapper 中如何传递多个参数?相关面试题,主要包含被问及在 mapper 中如何传递多个参数?时的应答技巧和注意事项,需要的朋友参考一下 1、第一种:   2、第二种:使用 \@param 注解:   然后,就可以在 xml 像下面这样使用(推荐封装为一个 map,作为单个参数传递给mapper)   3、第三种:多个参数封装成 map