Sulla mia applicazione Java, ho definito due classi, chiamate A
e B
dove B
è la classe interna di A
. Entrambi sono definiti come serializzabileGSON non deserializza il riferimento alla classe esterna
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
}
}
}
Prima serializzazione questo oggetto con GSON, getSomeCalculationValue
funziona bene. Ma, dopo la serializzazione e deserializzazione, getSomeCalculationValue
non riesce con uno NullPointerException
.
Questo accade perché la classe interna B
non ha più un riferimento alla classe esterna A
, quindi, A.this
non riesce.
Qualcuno sa come potrei risolvere questo, cioè ripristinare l'interiore al riferimento esterno mentre deserializza questo oggetto?
Si prega di mostrare il processo di serializzazione e deserializzazione, nonché un campione gson. Non vedo perché hai bisogno di 'Serializable' qui. –