2

以下代码执行良好:

public static void main(String [] args) {
        Runnable r = new Runnable() {
            public void run() {
                createGUI();
            }
        } ;

        javax.swing.SwingUtilities.invokeLater(r);
    }

我很好奇为什么以下代码无法编译:

 import javax.swing.SwingUtilities;

    public static void main(String [] args) {
                Runnable r = new Runnable() {
                    public void run() {
                        createGUI();
                    }
                } ;

                invokeLater(r);
        }

javax.swing.SwingUtilities.invokeLater(r);和有什么区别import javax.swing.SwingUtilities; invokeLater(r);

4

1 回答 1

5

要在这样的类中引用静态成员,作为一个简单的名称,您需要一个静态导入:

import static javax.swing.SwingUtilities.*;

稍后您可以使用

invokeLater(r);

正常的导入import javax.swing.SwingUtilities;允许您通过简单的名称引用该类 SwingUtilities,但不能引用该类的任何成员。因此,您可以这样做:

import javax.swing.SwingUtilities;

SwingUtilities.invokeLater(r);
于 2013-10-03T22:11:17.873 回答