【发布时间】:2013-05-09 12:00:19
【问题描述】:
我正在尝试让我的程序保存用户输入的数据。目前,我得到一个:
java.io.NotSerializableException: java.awt.image.BufferedImage error
现在,我所做的是在我的用户界面类中实现 FileWriter,并通过检查显示的文本文件,它试图保存有关我在 UI 上实现的文本框和标签的所有信息。在我的 UI 所基于的主类中,有一个 ArrayList 包含我的项目的对象。我需要序列化这些对象,但它们包含一个 BufferedImage。我想我已经找到了解决 BufferedImage 错误的方法,但我不希望整个 UI 都被序列化。
所以我的问题是,我是否应该将序列化方法移动到包含我的 ArrayList 对象的类中,以便 UI 不会被序列化?
【问题讨论】:
-
坦率地说,您应该避免序列化对象。序列化仅用于对象的短期(分钟)存储,通常用于传输到其他 JVM。相反,您应该使用 XML 之类的东西,可能是 JAXB
-
您可以控制序列化的内容,正如@Andrew 所暗示的那样。您也可以根据需要使用“瞬态”。
-
@MadProgrammer 如果我应该避免序列化对象,那么你建议我如何将我的信息写入 xml? JAXB 到底是什么?
-
JAXB 是一个绑定 API,用于将对象属性绑定到 XML 节点。结帐this了解更多详情
标签: java swing java-io serializable