我尝试在Java中序列化BufferedImage
,但是在运行我的程序时,我收到了NotSerializableException
。
查看BufferedImage
类,我注意到它没有实现Serializable
。
为什么没有BufferedImage
实施Serializable
?
答案 0 :(得分:4)
我认为你刚刚发现了一个缺失的功能。
BufferedImage implements Serializable
是否有意义?在我看来它确实如此。特别是如果BufferedImage
未从文件加载,而是创建和绘制。但即使它来自一个文件,如果我想通过 RMI 或类似的方式在VM之间交换它,谁会关心这些东西来自何处?BufferedImage
中是否存在针对BufferedImage implements Serializable
的强大技术理由?我浏览了源代码,我不这么认为。我检查了bug数据库是否已经包含了一个条目,我找不到任何相关内容。因此,这是您通过错误数据库做出贡献并建议功能请求的机会。 http://bugs.java.com/bugdatabase/
作为一种变通方法,您可能希望查看类readObject()
中writeObject()
和javax.swing.ImageIcon
的实现。 ImageIcon
是Serializable
。也许您可以将BufferedImage
包裹在ImageIcon
中用于您的用例,或以其他方式提供ImageIcon.readObject()
/ ImageIcon.writeObject()
的逻辑。