gpt4 book ai didi

java - 使用 Serializable 保存信息

转载 作者:行者123 更新时间:2023-11-30 07:16:56 26 4
gpt4 key购买 nike

我试图让我的程序保存用户输入的数据。目前,我得到:

java.io.NotSerializableException: java.awt.image.BufferedImage error

现在,我所做的是在我的用户界面类中实现 FileWriter,通过检查文本文件,它似乎在尝试保存有关我在我的 UI 上实现的文本框和标签的所有信息。在我的 UI 所基于的主类中,有一个 ArrayList 包含我的项目的对象。我需要序列化这些对象,但它们包含 BufferedImage。我想我已经找到解决 BufferedImage 错误的方法,但我不希望序列化整个 UI。

所以我的问题是,我是否应该将序列化方法移动到包含我的对象 ArrayList 的类中,这样 UI 就不会被序列化?

最佳答案

transient 关键字标记 BufferedImage 字段,这表明字段不应被序列化。

class A {
transient BufferedImage bufferedImage;
...

那么就可以在类A中实现如下方法来自定义序列化

private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{
s.defaultWriteObject();
// extract bytes from bufferedImage and write them
...

private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException {
s.defaultReadObject();
// read bytes and re-create bufferedImage
...

关于java - 使用 Serializable 保存信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16556159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com