Сериализация объекта внутреннего класса

Сериализуется ли состояние объекта внутреннего класса, когда происходит сериализация объекта внешнего класса?


Ответы (1 шт):

Автор решения: BccHnw

Сериализируется не класс, а объект. Внутри объектов внешнего класса непосредственно нет данных объектов внутреннего класса, они доступны только через экземпляр внутреннего класса.

Технически внутренний класс - это отдельный класс со специальным именем, который в конструкторе принимает ссылку на экземпляр внешнего класса для доступа к нему.

Т.е.:

public class A {
...
    public class B { 
...
    }
}

это (в условной записи)

public class A {
...
}

public class A$B {
    final A this$0;
    public B(A a) {
        this$0 = a;
    }
}
→ Ссылка