O GSON não desserializa a referência para a classe externa
No meu aplicativo Java, eu defini duas classes, chamadasA
eB
OndeB
é classe interna deA
. Ambos são definidos como serializáveis
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
}
}
}
Antes serializando este objeto com GSON,getSomeCalculationValue
funciona bem. Mas,depois de serialização e desserialização,getSomeCalculationValue
falha com umNullPointerException
.
Isso acontece porque a classe internaB
não tem referência a classe externaA
mais, entãoA.this
falha.
Alguém sabe como eu poderia resolver isso, que é restaurar a referência interna para externa ao desserializar esse objeto?