GSON no deserializa la referencia a la clase externa
En mi aplicación Java, definí dos clases, llamadasA
yB
dóndeB
es la clase interna deA
. Ambos se definen como serializables
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 de serializando este objeto con GSON,getSomeCalculationValue
funciona bien. Pero,después Serialización y deserialización,getSomeCalculationValue
falla con unNullPointerException
.
Esto sucede porque la clase interiorB
no tiene una referencia a clase externaA
más, entonces,A.this
falla
¿Alguien sabe cómo podría resolver esto, que es restaurar la referencia interna a la externa al deserializar este objeto?