据我了解,您基本上可以将任何类型的对象放入enum
,其中包括BufferedImage
。
这意味着创建enum
以下内容应该可以:
A(0 , ImageIO.read(new File("a.png")) , "foo" , true),
B(1 , ImageIO.read(new File("b.png")) , "" , true);
问题是您必须使用这种创建的方式来捕获任何异常BufferedImage
。
现在我的问题是:
是否可以try/catch
在的声明中放置一个enum
,还是应该只保存文件名并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;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句