tangguo

自我执行的Java方法

java

在JavaScript中,可以编写如下的自执行函数:

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

我正在寻找用Java做到这一点。因此,例如:

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

有这样的事吗?


阅读 278

收藏
2020-11-05

共1个答案

小编典典

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

Java不允许您定义独立的函数,因此您无法在Java中执行此操作。但是,您可以声明一个匿名类并立即执行其方法之一:

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

有时这是通过新线程完成的。就像是:

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

(尽管在很多情况下,您需要做得更好的线程管理-例如,将可运行项提交给执行者服务。)

2020-11-05