我想将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();
}
}
有没有办法在不更改原始类的情况下将Serializable实现到ClassName
?
答案 0 :(得分:1)
如果您对所有要序列化的插槽具有读/写访问权限,则可以创建适配器类。
public class MyClassAdapter implements Serializable {
private MyClass instance;
...
}
然后在序列化之前将实例包装在此适配器类中,并在反序列化后将其解压缩。
如果您没有对插槽的读/写权限,那么可能是一个很好的理由,并且序列化您不拥有的数据是一个坏主意。