当前位置: 首页 > 面试题库 >

通过Lambdas自执行匿名函数

南门峰
2023-03-14
问题内容

javascript中,存在创建匿名函数并立即调用它的常见模式(通常称为自执行匿名函数或立即调用的函数表达式)。

使用Java 8 lambda,是否有标准方法可以复制此行为?有点像(() -> doSomething())()

这个问题基本上提出了相同的问题,但是对于Java7。我正在明确地寻找使用lambda的构造。


问题答案:

也不是没有声明类型。由于Java是静态类型的语言,并且函数不是一等公民,因此编译器需要知道lambda是什么 类型
。一个函数不能只是自由浮动的,它总是需要与一个类或一个类的实例相关联。

Runnable r = () -> {
    System.out.println("Hello world!");
};
r.run();

但是: 您可以将lambda转换为Runnable类型,并向编译器提示@FunctionalInterface您要实现的类型:

((Runnable)() -> {
    System.out.println("Hello world!");
}).run();

或不带花括号,使其成为一线式:

((Runnable)() -> System.out.println("Hello world!")).run();

我想那差不多就到了!



 类似资料:
  • 在javascript中,常见的模式是创建匿名函数并立即调用它(通常称为自动执行匿名函数或立即调用的函数表达式)。 对于Java8 lambdas,是否有复制这种行为的标准方法?类似于

  • 我经常这样编写JS自动执行匿名函数 但前几天我在某人的代码里看到了这个 有什么不同,推荐哪一种?

  • 本文向大家介绍浅析Javascript匿名函数与自执行函数,包括了浅析Javascript匿名函数与自执行函数的使用技巧和注意事项,需要的朋友参考一下 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。匿名函数:就是没有函数名的函数。 函数的定义,大致可分为三种方式: 第一种:这也是最常规的一种 第二种:这种方法使用了Function构造函数,把参数列表和函数体都作为字符

  • 问题内容: 我想创建一个客户端函数,该函数可以使用客户端变量来接收和执行任意命令。我将使用socket.io从服务器发送这些函数,以发送包含匿名函数的JSON对象,这将是我的命令。它看起来像以下内容: 但是,当我尝试时,客户端接收到一个空的json对象(),然后抛出异常,因为数据不包含任何执行方法。这是怎么了? 问题答案: JSON不支持包含定义/表达式。 相反,您可以做的是使用所需的s 定义一个

  • 我有一个自动执行的函数,它包含很多东西,其中at函数是我想要全局化的。我通常只在全局范围内声明它,但它需要能够引用仅对自执行函数局部的变量。 在不完全去掉自执行函数(从而在全局空间中乱扔变量)的情况下,使函数全局可访问的最佳方法是什么?

  • 问题内容: 自从Java8最近发布以来,它的全新lambda表达式看起来真的很酷,我想知道这是否意味着我们曾经习惯的Anonymous类的消亡。 我对此进行了一些研究,发现了一些很酷的示例,这些示例说明Lambda表达式将如何系统地替换这些类,例如Collection的sort方法,该方法用于获取Comparator的Anonymous实例来执行排序: 现在可以使用Lambdas完成: 并且看起来