有人可以告诉我,如果在SWT(或其他人,如JavaFX),使用静态图像,而不处理它们是不好的或可接受的。例如:Java SWT - 将最常用的图像保持为静态是否正确?
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"));
...
为什么不能接受?这是我的偏好问题。我更关心最后一个关键字,并在资源声明中进行初始化。如果您的资源不可用,恢复将不会是一个选项... – Maaaatt
我读过很多关于“您应该避免在OOP中使用静态”的讨论,我只是想知道并且找不到有关此主题的主题。关于最后一个关键字,这是因为我认为这些图标永远不会改变,并且图像被设置在我的build.properties中。它会一直这样,不是吗? – FreeWorld
如果他们不是,无论原因如何?或者如您在验证的答案中所述,在创建显示设备后没有完成初始化?你将没有干净的方式来恢复该国际海事组织。那里的关键字最终成为一个问题,因为你将无法重新初始化您的图像。 – Maaaatt