我应该如何实现 可序列化界面?
我有一个 class Student ,并且需要能够将其保存到磁盘.对于我的作业,我必须序列化五个不同的 Student 对象并将其保存到文件中.
I have a class Student, and need to be able to save it to disk. For my homework, I have to serialize five different Student objects and save them to file.
class Student { String mFirstName; String mSecondName; String mPhoneNumber; String mAddress; String mCity; Student(final String pFirstName, final String pSecondName, final String pPhoneNumber, final String pAddress, final String pCity){ this.mFirstName = pFirstName; this.mSecondName = pSecondName; this.mPhoneNumber = pPhoneNumber; this.mAddress = pAddress; this.mCity = pCity; }}我尝试使用 ObjectOutputStream 序列化 Student ,但是会引发错误:
I've tried using ObjectOutputStream to serialize a Student, but it throws an error:
ObjectOutputStream lOutputStream = new ObjectOutputStream(new FileOutputStream("file.txt", true)); lOutputStream.write(new Student("foo","bar","555-1234","Flat 40","Liverpool")); 推荐答案您唯一需要做的就是实现Serializable.实现此接口时,您唯一需要担心的就是确保此类的所有字段也都实现了Serializable接口.在您的情况下,所有字段都是字符串,并且它们已经实现了Serializable.因此,您只需要添加可序列化的实现. docs.oracle/en/java/javase/11/docs/api/java.base/java/io/Serializable.html
The only thing you need to do is implement Serializable. The only thing you need to worry when implementing this interface is to make sure that all fields of such class, has implemented Serializable interface as well. In your case all fields are Strings and they already implement Serializable. Therefore, you only need to add implements Serializable. docs.oracle/en/java/javase/11/docs/api/java.base/java/io/Serializable.html
public class Student implements Serializable { String first; String second; String phone; String cityAddress; String cityStreet; public Student(String s1, String s2, String s3, String s4, String s5) { first = s1; second = s2; phone = s3; cityAddress = s4; cityStreet = s5; } }更多推荐
如何实现可序列化?
发布评论