在JavaScript中,可以编写如下的自执行函数:
(function foo() { console.log("bar"); }());
我正在寻找用Java做到这一点。因此,例如:
// This code does not work obviously public static void main(String[] args) { (foo() { System.out.println("bar"); }()); }
有这样的事吗?
该javascript并没有真正创建“自执行”功能。它定义了一个函数,然后立即执行它。
Java不允许您定义独立的函数,因此您无法在Java中执行此操作。但是,您可以声明一个匿名类并立即执行其方法之一:
new Runnable() { @Override public void run() { System.out.println("hello"); } }.run();
有时这是通过新线程完成的。就像是:
new Thread(new Runnable() { // override Runnable.run }).start();
(尽管在很多情况下,您需要做得更好的线程管理-例如,将可运行项提交给执行者服务。)