【发布时间】:2011-05-27 14:20:36
【问题描述】:
我有这门课,比如说Foo。它extends JFrame 是一个单身人士。话虽如此,它有两个静态字段:1)Foo 的实例和 2)Color。
这是Foo的代码sn-p:
public class Foo extends JFrame{
private static final Color FOO_RED = new Color(155, 64, 69);
private static final Foo INSTANCE = new Foo();
private Foo(){
//do stuff
}
public static Foo getInstance(){
return INSTANCE;
}
}
我还有另一堂课,比如说Launcher。这是负责启动应用程序的主类。这是一个简单的类,它唯一的工作就是将构造Foo 的任务委托给EDT。
这是Launcher的代码sn-p:
public class Launcher{
public static void main(String[] args){
SwingUtilities.invokeLater((new Runnable(){
@Override
public void run()
{
Foo.getInstance();
}
}));
}
}
现在,这一切都很好。 但是,当我切换Foo 的字段顺序时(见下文),使用FOO_RED 的组件不再被涂成这种颜色。
public class Foo extends JFrame{
private static final Foo INSTANCE = new Foo(); //declared before Color
private static final Color FOO_RED = new Color(155, 64, 69);
private Foo(){
//do stuff
}
public static Foo getInstance(){
return INSTANCE;
}
}
那么,这就引出了一个问题,静态字段的顺序对于Swing是否重要?
【问题讨论】:
标签: java swing singleton static-members