相关疑难解决方法(0)

Java对象序列化和继承

假设你有这两个类,Foo和Bar,其中Bar扩展了Foo并实现了它们 Serializable

class Foo {

public String name;

public Foo() {
    this.name = "Default";
}

public Foo(String name) {
    this.name = name;
}
}

class Bar extends Foo implements java.io.Serializable {

public int id;

public Bar(String name, int id) {
    super(name);
    this.id = id;
}
}
Run Code Online (Sandbox Code Playgroud)

请注意,Foo没有实现Serializable.那么当条形序列化时会发生什么?

    public static void main(String[] args) throws Exception {

    FileOutputStream fStream=new FileOutputStream("objects.dat");
    ObjectOutputStream oStream=new ObjectOutputStream(fStream);
    Bar bar=new Bar("myName",21);
    oStream.writeObject(bar);

    FileInputStream ifstream = new FileInputStream("objects.dat");
    ObjectInputStream istream = new ObjectInputStream(ifstream);
    Bar bar1 = …
Run Code Online (Sandbox Code Playgroud)

java inheritance serialization object-serialization

33
推荐指数
1
解决办法
2万
查看次数