Java SWT - 将最常用的图像保持为静态是否正确?

Java SWT - Is it correct to keep most used Images as static?

有人能告诉我在 SWT(或其他软件,如 JavaFX)中,将图像用作静态图像而不处理它们是否不好或可以接受。例如:

public class TemplateImage {

/** ================== STATIC FINAL VALUES ================== */

/** Buttons */

public static final Image IMAGE_BUTTON_EXPAND = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/plus.png"));
public static final Image IMAGE_BUTTON_REDUCE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/minus.png"));
public static final Image IMAGE_BUTTON_CREATE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/write.png"));
public static final Image IMAGE_BUTTON_DELETE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/delete.png"));
public static final Image IMAGE_BUTTON_MODIFY_REFERENCE = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/link.png"));

/** Miscellaneous */

/** Status */
public static final Image IMAGE_ERROR_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/error-status.png"));
public static final Image IMAGE_WARNING_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/warning-status.png"));
public static final Image IMAGE_UNRESOLVED_CONFLICT_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/unresolved-conflict-status.png"));
public static final Image IMAGE_NEW_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/new-status.png"));

public static final Image IMAGE_ANGRY_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-angry.png"));
public static final Image IMAGE_DISAPPOINTED_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-disappointed.png"));
public static final Image IMAGE_HAPPY_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-happy.png"));
public static final Image IMAGE_NEUTRAL_STATUS = new Image(Display.getCurrent(), TemplateImage.class.getResourceAsStream("/icons/status-neutral.png"));

...

Display.getCurrent() 的调用意味着您必须确保在创建 Display 设备之后完成此静态初始化,并且初始化在用户界面线程上运行。如果其中任何一个错误,您将得到一个错误。

除此之外静态图片没有问题。

如果预期使用这些图像的东西可以从内存中卸载或作为长期存在的进程的一部分(如 Eclipse 插件),那么静态是不好的。否则,没关系。