在所有类中实现可序列化但获取NotSerializableException

时间:2015-12-17 06:55:34

标签: java

我序列化了我的所有类但得到异常......任何人都可以说哪个类属性会导致这个问题?

1 -

[

2 -

    public class UserManage  {
       public ArrayList<User> users=null;

3 -

public class User implements java.io.Serializable      {
    private String firstName;
    private ArrayList<Repository> userRepositories=null;

我必须说类public class Repository implements java.io.Serializable { public String parentPathOfAllRepositories="D:\\TestOfJava"; private ArrayList<String> contributorsID=null; private String ParentDefaultPath=null; private HashMap<File,String> LockListFile=null; private HashMap<File,String> FileHashlist=null; private String VersionHolderFolderPath=null; private HashMap<HashMap<File,String>,HashMap<Date,String>> VersionsList=null; 中的ArrayList<User>必须序列化为文件

[更新]:异常消息:UserManage

1 个答案:

答案 0 :(得分:0)

如果您的对象没有实现java.io.Serializable,则此代码会抛出NotSerializableException,这同样适用于其所有非静态和非瞬态数据成员,依此类推,直到关闭。使用指定的SerialVersionUID更好,因此JVM不会在运行时计算它。 还请实现Serializable to UserManage类。

对于数组或集合,数组或集合的所有对象都必须是可序列化的。如果任何对象不可序列化,序列化将失败。

如果你的类中有内部类,那么内部类总是拥有对其外部类的隐式引用,除非外部类也可序列化,否则不能序列化内部类。实际上它甚至不建议尝试;

查看此参考资料 http://docs.oracle.com/javase/7/docs/platform/serialization/spec/serial-arch.html#4539