java - MyClass NotSerializableException
问题描述
我创建了一个名为Components
. 它有一些组件,如Button
, TextArea
,VerticalLayout
等。我没有让这个类可序列化,因为我不需要,但是当我启动服务器时(我使用 Tomcat),我得到这个错误:
java.io.NotSerializableException: com.vaadin13.Components
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at java.util.ArrayList.writeObject(ArrayList.java:766)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
当我的类不可序列化时,为什么会出现此错误,我该如何解决?
解决方案
要修复此错误,请实现 Serializable 接口并为其指定一个 id。
Public class Foo implements Serializable {
private static final long serialversionUID = 1L; // example
//code then
}
推荐阅读
- algorithm - 计算与 0 共享的矩阵中 1 的边数
- java - 是否可以将数组索引作为char?
- osrm - 在 OSRM 前端自定义 UI
- java - 我的矩阵乘法函数返回空白或不正确的输出
- angular - 如何在角度 6 中获取选择属性
- mysql - MySQL 选择 8 个唯一用户,然后选择这 8 个用户中的所有记录,然后选择每 8 个用户的 4 个最新和可用记录?
- jquery - 将 jquery.i18n.properties.js 与 Grails 一起使用
- sql - 尝试在 DAO 中返回自己的对象列表时 Android 房间编译器错误:不兼容的类型:
无法转换为 int - python - 在数据帧上执行 for 循环的更快替代方案?
- html - 一行中的多个 i 标签与多行