为什么java.awt.image.BufferedImage不能序列化?

时间:2015-03-10 00:18:22

标签: java image serialization awt

我尝试在Java中序列化BufferedImage,但是在运行我的程序时,我收到了NotSerializableException

查看BufferedImage类,我注意到它没有实现Serializable

为什么没有BufferedImage实施Serializable

1 个答案:

答案 0 :(得分:4)

我认为你刚刚发现了一个缺失的功能。

  • 拥有BufferedImage implements Serializable是否有意义?在我看来它确实如此。特别是如果BufferedImage未从文件加载,而是创建和绘制。但即使它来自一个文件,如果我想通过 RMI 或类似的方式在VM之间交换它,谁会关心这些东西来自何处?
  • BufferedImage中是否存在针对BufferedImage implements Serializable的强大技术理由?我浏览了源代码,我不这么认为。

我检查了bug数据库是否已经包含了一个条目,我找不到任何相关内容。因此,这是您通过错误数据库做出贡献并建议功能请求的机会。 http://bugs.java.com/bugdatabase/

作为一种变通方法,您可能希望查看类readObject()writeObject()javax.swing.ImageIcon的实现。 ImageIconSerializable。也许您可以将BufferedImage包裹在ImageIcon中用于您的用例,或以其他方式提供ImageIcon.readObject() / ImageIcon.writeObject()的逻辑。