Java 将对象序列化为dat文件
所以我有一个对象数组列表,我想以二进制格式存储到dat文件中 objectA类具有此构造函数Java 将对象序列化为dat文件,java,serialization,arraylist,Java,Serialization,Arraylist,所以我有一个对象数组列表,我想以二进制格式存储到dat文件中 objectA类具有此构造函数 public ObjectA(String aString,int aNumber ,String[] sampleA){ this.aString = aString; this.aNumber = aNumber; this.sampleA= sampleA; } 在另一个类文件中,我对该类进行了实例化,并用ObjectA对象填充了arraylist priva
public ObjectA(String aString,int aNumber ,String[] sampleA){
this.aString = aString;
this.aNumber = aNumber;
this.sampleA= sampleA;
}
在另一个类文件中,我对该类进行了实例化,并用ObjectA对象填充了arraylist
private static ArrayList<ObjectA> objectA = new ArrayList<ObjectA>();
但是,我在尝试运行时发现了这个错误
createFile()上出现错误!java.io.NotSerializableException:trycatch中的ObjectA
有什么想法吗?您的
对象a
必须实现该接口
public ObjectA implements Serializable {
}
不过,这不是唯一有效的方法
实现也是有效的。区别在于java.io.Serializable
被称为标记接口(例如,该接口不提供实现方法),而java.io.Externalizable
强制您实现两种方法,从而为实现自定义序列化机制提供了必要的手段
public class ObjectA implements Externalizable {
@Override
public void writeExternal(ObjectOutput out) { ... }
@Override
public void readExternal(ObjectInput in) { ... }
}
您的
ObjectA
必须实现该接口
public ObjectA implements Serializable {
}
不过,这不是唯一有效的方法
实现也是有效的。区别在于java.io.Serializable
被称为标记接口(例如,该接口不提供实现方法),而java.io.Externalizable
强制您实现两种方法,从而为实现自定义序列化机制提供了必要的手段
public class ObjectA implements Externalizable {
@Override
public void writeExternal(ObjectOutput out) { ... }
@Override
public void readExternal(ObjectInput in) { ... }
}
您的
ObjectA
必须实现该接口
public ObjectA implements Serializable {
}
不过,这不是唯一有效的方法
实现也是有效的。区别在于java.io.Serializable
被称为标记接口(例如,该接口不提供实现方法),而java.io.Externalizable
强制您实现两种方法,从而为实现自定义序列化机制提供了必要的手段
public class ObjectA implements Externalizable {
@Override
public void writeExternal(ObjectOutput out) { ... }
@Override
public void readExternal(ObjectInput in) { ... }
}
您的
ObjectA
必须实现该接口
public ObjectA implements Serializable {
}
不过,这不是唯一有效的方法
实现也是有效的。区别在于java.io.Serializable
被称为标记接口(例如,该接口不提供实现方法),而java.io.Externalizable
强制您实现两种方法,从而为实现自定义序列化机制提供了必要的手段
public class ObjectA implements Externalizable {
@Override
public void writeExternal(ObjectOutput out) { ... }
@Override
public void readExternal(ObjectInput in) { ... }
}