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

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

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

为什么BufferedImage没有实现Serializable

我想你刚刚发现了一个缺失的function。

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

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

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