为什么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.ImageIcon
的readObject()
和writeObject()
的实现。 ImageIcon
是Serializable
。 也许你可以在你的用例中将BufferedImage
包装在ImageIcon
中,或者以某种方式提供ImageIcon.readObject()
/ ImageIcon.writeObject()
的逻辑。