Method.invoke是否会创建另一个执行线程?

时间:2010-12-17 15:21:50

标签: java reflection

method.invoke函数是否会创建另一个执行线程?因为当我用它来调用GUI应用程序的main方法时,invoke方法立即返回,程序和GUI应用程序同时运行。

2 个答案:

答案 0 :(得分:6)

没有。

您观察到的行为是由于GUI库在初始化时启动了事件调度线程,并且该线程执行了以下所有与GUI相关的工作。

编辑这是一个简单的Swing GUI应用程序:

public class Test {
    public static void main(String[] args) throws Exception {
        JFrame frame = new JFrame("Hello, world!");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        System.out.println("Main method returns");
    }
}

如果运行它,您将看到所有这些方法都是非阻塞的,因此{GUI}设置后会立即返回main方法,并且事件调度线程会执行进一步的工作。

答案 1 :(得分:1)

没有。 Method.invoke 就像普通方法一样工作。如果不是你期望的话,也许会抛出异常。你把调用包起来了吗?

另外,一个片段会有很多帮助