0
클래스에 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
로 직렬화 구현하는 방법이 ?
직렬화하려는 모든 슬롯에 대한 읽기/쓰기 액세스 권한이있는 경우 클래스 이름을 포함하는 어댑터 클래스를 만들 수 있습니다. 읽기/쓰기 액세스 권한이 없으면 서브 클래 싱은 어쨌든 작동하지 않았을 것입니다. –
Slivio는 기본적으로 정확하다고 생각합니다. 'InnerClass'에있는 getter와 setter에 접근하여 클래스의 인스턴스를 다시 만들 수 있다면, 어떤 종류의 래퍼로 그것을 할 수 있습니다. 그렇지 않다면 반성이 있습니다. 그러나 완전히 권장되지는 않습니다. '비공개'는 상속하거나 직접 액세스 할 수 없어야 함을 의미합니다. – markspace
@Silvio 나는 대답으로 그 주석을 써야한다고 생각한다. 아무도 의견에서 그것을 볼 수 없습니다! – Keara