反序列化 ArrayList。没有有效的构造函数

2023-12-19

这就是我反序列化包含标识对象的 arrayList 的方式

public void deserializeArrayList(){
    String path = "./qbank/IdentificationHARD.quiz";
    try{
          FileInputStream fileIn = new FileInputStream(path);
            ObjectInputStream in = new ObjectInputStream(fileIn);
            ArrayList<Identification> list = (ArrayList<Identification>) in.readObject();
            System.out.println(list);
    }catch(Exception e){
        e.printStackTrace();
    }
}

这就是我序列化它的方式

public void saveItemIdentification(ArrayList<Identification> identification,File file){
    try{
        ObjectOutputStream out = new ObjectOutputStream(
                                      new FileOutputStream(file));
        out.writeObject(identification);
    }catch(Exception e){
        e.printStackTrace();
    }
}

但是当我反序列化它时它给了我这个错误

java.io.InvalidClassException: quizmaker.management.Identification; quizmaker.management.Identification; no valid constructor
    at java.io.ObjectStreamClass.checkDeserialize(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at java.util.ArrayList.readObject(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at quizmaker.management.Manage.deserializeArrayList(Manage.java:92)

这是第 92 行

ArrayList<Identification> list = (ArrayList<Identification>) in.readObject();

为什么会发生这种情况?

这是代码Identification Object.

 package quizmaker.management; 
 import java.io.Serializable;
 import quizmaker.Accounts.Rights.IAnswerable;

public class Identification extends Question implements Serializable{

    private static final long serialVersionUID = 2L;
    private String question;
    private String answer;

    public Identification(String q , String a){
        super(q,a);
    }

    public String toString(){
        return String.format("Question: %s\n Answer %s", getQuestion(),getAnswer());
    }
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反序列化 ArrayList。没有有效的构造函数 的相关文章

随机推荐

  • 该证书的颁发者无效 Apple Push Services

    我已创建证书以在我的应用程序中启用推送服务 但每次我尝试在钥匙串中添加证书时 添加证书后都会显示以下错误 该证书的颁发者无效 我想我已经弄清楚了这一点 我导入了新的 WWDR 证书将于 2023 年到期 https developer ap
  • Codeigniter 中国家/地区和城市的 Ajax 下拉菜单?

    我正在我们的 Codeigniter 框架中借助 ajax 使国家和城市下降 数据库的结构如下所示 Country country id country name State country id state id state name c
  • 如何在 Chrome 扩展中使用 google 创建登录信息

    我最近刚刚构建了一个插件 需要在其中集成 Google Login 我搜索并发现chrome identity使用谷歌帐户对用户进行身份验证 但这效果不佳 所以我通过使用下面的代码找到了一个解决方案 var manifest chrome
  • 使用 VBA 宏删除 PowerPoint 中的图片

    我正在使用以下 VBA 宏删除 PowerPoint 幻灯片中的所有图片 Public Function delete slide object slide no Reference existing instance of PowerPo
  • Zend Action 助手与插件

    我有一个出现在每个页面上的侧边栏 侧边栏的第一个元素是 a 登录表单 或 b 当前用户的详细信息 取决于用户是否登录 我已经阅读了一些实现此目的的方法 并计划在引导程序中初始化侧边栏占位符 当需要将用户详细信息或登录表单附加到侧边栏时 我应
  • Allegro CL 在调用(读取)函数时冻结

    每当我打电话给 read 在 Allegro Common Lisp 9 0 中 调试窗口 中断 抱歉 我想不出更清晰的术语 鼠标变成旋转的蓝色死亡轮 窗口拒绝评估任何新输入 尽管它可以仍然可以输入 IDE 的其他部分不受影响 屏幕看起来像
  • 关于加快选边速度的建议

    我正在用 C 构建一个图形编辑器 用户可以在其中放置节点 然后将它们与有向或无向边连接 完成后 A 寻路算法确定两个节点之间的最佳路径 我拥有的 具有 x y 连接节点列表以及 F G 和 H 分数的 Node 类 具有 Start Fin
  • 标准库方法的成员函数指针问题

    这个问题源于 将指向重载类方法的成员函数指针传递到模板函数中 https stackoverflow com questions 31309846 passing a member function pointer to an overlo
  • 丰富的卡片属性 Markdown 格式

    我在英雄卡中的文本属性的降价格式方面遇到问题 这是代码示例 HeroCard heroCard new HeroCard Text Place1 Berlin n n Place2 Hamburg Buttons cardButtons 它
  • 使用 Google Earth Engine 计算每个地区、月份和年份的 NDVI?

    我想计算每个区域 管理级别 3 也称为 Wearda 月份和年份的平均 NDVI 所以我的最终结果看起来像这样 regions year month NDVI region 1 2010 1 0 5 region 1 2010 2 0 6
  • 如果没有空间,操作栏会将选项卡转换为列表导航

    I have an actionbar with a logo a title 2 tabs and a search function On a phone 3 5 everything works fine The actionbar
  • Git:跟踪还是取消跟踪 Android API 密钥?

    我正在使用适用于 Android 的 Google 地图 API 当我想在旅行时处理代码时 我将代码从桌面推送到 Github 然后从 Github 下载到我的笔记本电脑上 就 Google Maps API 而言 我需要将 API 密钥放
  • Xcode 6 iOS 8 UITableView rowHeight 属性返回 -1 [重复]

    这个问题在这里已经有答案了 我有一个UITableView在我的项目中的 Xcode 中 我设置了rowHeight to be 44 in StoryBoard 在 iOS7 中一切正常 但在 iOS8 rowHeight 返回值 1这导
  • Java:showInputDialog 中的自定义按钮

    如何将自定义文本添加到 JOptionPane showInputDialog 的按钮 我知道这个问题带有自定义按钮的 JOptionPane showInputDialog https stackoverflow com question
  • 在滚动时有效调整 UITableViewCell 的大小

    大概的概念 我希望在用户滚动列表时动态调整 UITableViewCells 的大小 也就是说 使项目在到达列表底部时尺寸增大 注意事项 这是一个每秒需要刷新多次的进程 因为调用如下 void scrollViewDidScroll UIS
  • caret:结合分层的 createMultiFolds (repeatedCV) 和 groupKFold

    我的问题与中提出的问题非常相似插入符号 结合 createResample 和 groupKFold https stackoverflow com questions 48142617 caret combine createresamp
  • 在 pandas 数据框中的两列之间传输值

    我有一个像这样的熊猫数据框 p q 0 5 0 5 0 6 0 4 0 3 0 7 0 4 0 6 0 9 0 1 所以 我想知道 如何将较大的值传输到 p 列 反之亦然的 q 列 将较小的值传输到 q 列 如下所示 p q 0 5 0 5
  • Lua中的线程优先级

    我看了Lua的书 了解到Lua中的多线程是协作的 我找不到的是有关线程优先级的一些信息 我猜想具有相同优先级的线程会运行直到完成 因为多线程是协作的 或者完成了收益 如果一个线程的优先级高于另一个线程呢 它是否能够中断优先级较低的线程 或者
  • 允许的内存大小 268435456 字节已耗尽[重复]

    这个问题在这里已经有答案了 可能的重复 允许的 X 字节内存大小已耗尽 https stackoverflow com questions 4096582 allowed memory size of x bytes exhausted 我
  • 反序列化 ArrayList。没有有效的构造函数

    这就是我反序列化包含标识对象的 arrayList 的方式 public void deserializeArrayList String path qbank IdentificationHARD quiz try FileInputSt