私有内部类的继承



我想将 Serializable 实现到一个类中,但我不允许修改它。我的想法是创建另一个继承自另一个类的类。但是原始类是这样构建的:

public class ClassName {
private class InnerClass{
private InnerClass(){
//do stuff
}
}
public ClassName(){
//do stuff
}
}

因此,以下内容不起作用,因为InnerClass是私有的,因此不可见:

import java.io.Serializable;
public class ClassTwo extends ClassName implements Serializable{
private class InnerClass extends ClassName.InnerClass implements Serializable {
private InnerClass(){
super();
}
}
public ClassTwo(){
super();
}
}

有没有办法在不更改原始类的情况下将可序列化实现到ClassName

如果您对要序列化的所有插槽具有读/写访问权限,则可以创建适配器类。

public class MyClassAdapter implements Serializable {
private MyClass instance;
...
}

然后,只需在序列化之前将实例包装在此适配器类中,并在反序列化后提取它。

如果您没有对槽的读/写访问权限,则可能有一个很好的理由,序列化您不拥有的数据是一个坏主意。

最新更新