我想在类中实现 Serialized,但不允许我修改它。我的想法是创建另一个继承另一个类的类。但原来的类是这样构建的:
public class ClassName {
private class InnerClass{
private InnerClass(){
//do stuff
}
}
public ClassName(){
//do stuff
}
}
因此以下内容不起作用,因为 InnerClass
是私有(private)的,因此不可见:
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();
}
}
有没有一种方法可以在不更改原始类的情况下将 Serialized 实现到 ClassName
中?
最佳答案
如果您对您想要序列化的所有插槽具有读/写访问权限,则可以创建一个适配器类。
public class MyClassAdapter implements Serializable {
private MyClass instance;
...
}
然后在序列化之前将实例包装在这个适配器类中,并在反序列化之后将其提取出来。
如果您没有对插槽的读/写访问权限,这可能是有充分理由的,并且序列化您不拥有的数据是一个坏主意。
关于java - 私有(private)内部类的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47660587/