Java Object输入流readObject();

Mor*_*man 2 java serialization objectinputstream

我已将对象保存到数组列表并将文件保存为.dat,但是当我想要读取对象时,它只显示null而不是值.

班级

public class Person implements Serializable {
  public static String Name;
  public static String Contact;

  public Person(String Name, String Contact) {
    this.Name = Name;
    this.Contact = Contact;
  }

  public String getName() {
    return Name;
  }

  public String getContact() {
    return Contact;
  }
}
Run Code Online (Sandbox Code Playgroud)

代码

FileInputStream fis;
try {
  fis = new FileInputStream("Person.dat");
  ObjectInputStream ois = new ObjectInputStream(fis);
  ArrayList<Person> per = (ArrayList<Person>) ois.readObject();
  ois.close();

  per.get(0);
  Person pe = per.get(0);
  System.out.println(pe.getName());
} catch (FileNotFoundException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
} catch (IOException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
} catch (ClassNotFoundException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

wer*_*ero 5

您定义了静态成员Name,Contact但未对其进行序列化.删除static修改器以使其工作.