假设我有这个自定义组件。它是 JMenuItem
的子类,并且所有实例都使用相同的 Font
对象,尽管没有一个实例共享相同的实例。例如,
public abstract class JFooMenuItem extends JMenuItem{
public JFooMenuItem(final String title){
super(title);
setFont(new Font("Courier New", Font.BOLD, 12));
}
}
现在,考虑到可能有多达 10 个以上的菜单项,将 Font
实例设置为共享的static
成员变量会更有效吗?当前的设置(即上面的代码)很好(内存管理方面)?
最佳答案
我会说使用一个命名实例,不是因为内存,而是因为如果您决定更改字体,则必须在 10+
个位置进行编辑。
public static Final Font MENU_FONT = new Font("Courier New", Font.BOLD, 12);
编辑:即使您使用子类化,最好将其声明为 public static final
因为 Font
是常量。更清楚了。
关于java - 多个实例与单个静态实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121336/