Gson: configuración de referencia de objeto sobre la marcha utilizando InstanceCreator
Estoy atrapado en un problema en el que necesito establecer una referencia de mi objeto que se analiza a sus objetos secundarios durante la deserialización usandoGson
yInstanceCreator
.
Para representar el problema, la siguiente es la representación simple de la estructura de clases.
public class Workshift {
private final transient Context context;
private final Visit visit;
public Workshift(Context context) {
this.context = context;
this.visit = new Visit(this);
}
}
public class Visit {
private final transient Workshift workshift;
public Visit(Workshift ws) {
this.workshift = ws;
}
}
Con esta estructura, puedo establecerContext
enWorkshift
al proporcionar unInstanceCreator
para miGsonBuilder
, por ejemplo:
Gson gson = new GsonBuilder()
.registerTypeAdapter(Workshift.class, new InstanceCreator<Workshift>() {
@Override
public Workshift createInstance(Type type) {
return new Workshift(context);
}
})
.create();
Lo sé, puedo agregar másInstanceCreator
para miGsonBuilder
, pero no estoy seguro de cómo proporcionar una referencia de miWorkshift
objeto que se está analizando (sobre la marcha) paraVisit
¿objeto?
¡Cualquier ayuda sería apreciada!