gpt4 book ai didi

java - 我无法在 Java 中序列化和反序列化对象

转载 作者:行者123 更新时间:2023-11-30 03:30:42 24 4
gpt4 key购买 nike

我在 Java(8) 中序列化对象时遇到问题。我看到了很多例子,但没有一个适合我。问题是,在序列化时,它不会序列化对象及其完整数据。当我尝试反序列化时,它将所有变量读取为空。我在 Employee 类中执行此操作。 Serialize.java 的代码:

public class Serialize {
private static ArrayList<Employee> emp = new ArrayList<Employee>();
public static void main(String[] args){
try{

emp.add(new Employee("Areg Hovhannisyan",5));
emp.add(new Employee("Tigran Hakobyan",15));
emp.add(new Employee("Shivanshu Ojha",11));
FileOutputStream fos = new FileOutputStream("emps.emp");
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeObject(emp);

out.close();
fos.close();

} catch (IOException e) {
e.printStackTrace();
}
}
}

员工.java:

import java.io.Serializable;
public class Employee implements Serializable {
private static int age;
private static String name;

public static int getAge() {
return age;
}
public static void setAge(int age) {
Employee.age = age;
}
public static String getName() {
return name;
}
public static void setName(String name) {
Employee.name = name;
}


public Employee(String name,int i) {
this.name = name;
this.age = i;
}
@Override
public String toString() {
return "Name : " + getName() + ", Age : " + getAge();
}

}

请给出一个示例来执行此操作,如何反序列化并请给出解释,因为我也想了解它是如何工作的。

最佳答案

这是因为类中的字段是静态的。静态是隐式 transient 的,我们无法序列化 transient 字段。

关于java - 我无法在 Java 中序列化和反序列化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29122438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com