GSON не десериализует ссылку на внешний класс
В моем Java-приложении я определил два класса, называемыхA
а такжеB
гдеB
это внутренний классA
, Оба определены как сериализуемые
public class A implements Serializable {
int attrParent;
List<B> items = new ArrayList<B>();
public void setAttrParent(int attrParent) {
this.attrParent = attrParent;
}
public int getAttrParent() {
return attrParent;
}
public class B implements Serializable {
private int attr;
public void setAttr(int attr) {
this.attr = attr;
}
public int getAttr() {
return attr;
}
public int getSomeCalculationValue() {
return this.attr * A.this.attrParent; // Problems occurs here
}
}
}
До сериализация этого объекта с GSON,getSomeCalculationValue
работает отлично. Но,после сериализация и десериализация,getSomeCalculationValue
терпит неудачу сNullPointerException
.
Это происходит потому, что внутренний классB
не имеет ссылки на внешний классA
больше так,A.this
выходит из строя.
Кто-нибудь знает, как я могу решить эту проблему, то есть восстановить внутреннюю ссылку на внешнюю при десериализации этого объекта?