如何在 Java 的枚举中保存图像?

How to hold an image in an enum in Java?

据我了解,您基本上可以将任何类型的对象放入 enum,这包括 BufferedImage.
这意味着按如下方式创建 enum 应该可行:

A(0 , ImageIO.read(new File("a.png")) , "foo" , true),
B(1 , ImageIO.read(new File("b.png")) , "" , true);

问题是您必须通过这种创建 BufferedImage.

的方式捕获任何异常

现在我的问题是:
是否可以在 enum 的声明 try/catch 中放置一个 try/catch ,或者我应该只保留文件名并在什么时候传递实际的 BufferedImage正在请求吗?

您的枚举声明已经需要一个构造函数,您可以在其中捕获和处理所有异常。

public enum ImageEnum {

   A(0 , "a.png" , "foo" , true),
   B(1 , "b.png" , "" , true);

   private final BufferedImage image;

   private ImageEnum(.., String filename, ..) {
        // first assign to tempImage to meet teh final modifier of image
        BufferedImage tempImage = null;
        try {
             tempImage = ImageIO.read(new File(filename));
        } catch (Exception e) {
             tempImage = null;
        }
        image = tempImage;
   }

}

如果你创建了一个加载图像并返回它的方法,从而捕获任何异常,并且你可以传递文件的路径,那会怎么样。所以您的代码可能如下所示:

A(0 , loadImage("a.png"), "foo" , true),
B(1 , loadImage("b.png"), "" , true);

如果你像我一样喜欢把事情分解成很多方法,这只是另一种选择。