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

自执行Java方法

曾晨
2023-03-14

在JavaScript中,可以编写这样的自动执行函数:

(function foo() {
    console.log("bar");
}());

我希望在Java中实现这一点。例如:

// This code does not work obviously
public static void main(String[] args) {
    (foo() {
        System.out.println("bar");
    }());
}

有这样的事吗?

共有3个答案

陈瀚
2023-03-14

您可以创建将执行您的自定义函数的帮助器方法(例如runget)。

如果函数没有返回任何结果(副作用),则使用run,否则使用get

import java.util.function.Supplier;

public interface MyApp {

    static void run(Runnable supp) {
        supp.run();
    }

    static <R> R get(Supplier<R> supp) {
        return supp.get();
    }

    static void test() {

        run(() -> System.out.println("bar"));
        var v = get(() -> "Hello");

    }

}
云景焕
2023-03-14

那个javascript并没有真正创建一个“自动执行”函数。它定义了一个函数,然后立即执行它。

Java不允许定义独立函数,所以在Java中不能这样做。但是,您可以声明一个匿名类并立即执行其方法之一:

new Runnable() {
  @Override
  public void run() {
    System.out.println("hello");
  }
}.run();

这有时是用新线程完成的。类似于:

new Thread(new Runnable() {
    // override Runnable.run
}).start();

(尽管在很多情况下,您希望更好地进行线程管理——例如,将runnable提交给executor服务。)

蒋原
2023-03-14

正如其他人所说,在Java中没有太多理由这样做,因为在JavaScript中这样做的原因在Java中不是问题。但是您可以在Java8中这样做:

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

这在本质上与yshavit在Java7中的回答相同。

 类似资料:
  • 问题内容: 在JavaScript中,可以编写如下的自执行函数: 我正在寻找用Java做到这一点。因此,例如: 有这样的事吗? 问题答案: 该javascript并没有真正创建“自执行”功能。它定义了一个函数,然后立即执行它。 Java不允许您定义独立的函数,因此您无法在Java中执行此操作。但是,您可以声明一个匿名类并立即执行其方法之一: 有时这是通过新线程完成的。就像是: (尽管在很多情况下,

  • 我很难找到一种方法来跟踪方法执行(例如:在执行时调用方法...) 下面是我想追踪的代码片段: 我想知道JsonSaniitier类的方法sanitize已被调用... 我尝试运行jStack,但是在堆栈跟踪中没有看到任何JsonSanitizer.sanitize方法的出现。 提前谢谢

  • 我有3种方法需要并行运行,因为它们彼此独立,并在最后合并每种方法的结果,并将其作为响应发送。我还需要处理异常。 在不同的帖子中,我找到了下面的代码并进行了相应的修改。 上述各项是否应正确并行运行?我知道这需要更多的时间,我想确保我做对了。

  • 本文向大家介绍java执行Linux命令的方法,包括了java执行Linux命令的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java执行Linux命令的方法。分享给大家供大家参考。具体实现方法如下: 其中参数 cmd 为Linux命令。每次只能执行一条命令。 1.Java Runtime.exec()注意事项: ① 永远要在调用waitFor()方法之前读取数据流 ② 永远要先从

  • 本文向大家介绍Linux下执行java程序的方法,包括了Linux下执行java程序的方法的使用技巧和注意事项,需要的朋友参考一下 想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文件 具体操作如下: 1、Windows上使用eclipse编译java工程,编译完成后导出为Runnable JAR File 例如,此处将test工程中的T

  • 这是我HTML文件中的内容: 我希望按钮在Post类中执行一个方法。我不确定我是否使用了正确的Thymeleaf“标记”。现在,当页面加载时,它执行post-upvote和downvote方法。有人能帮忙吗?我觉得我用错了Thymeleaf标签。