Gson - установка ссылки на объект на лету с помощью InstanceCreator
Я застрял в проблеме, где мне нужно установить ссылку на анализ моего объекта на его дочерние объекты во время десериализации с помощьюGson
а такжеInstanceCreator
.
Чтобы изобразить проблему, ниже приведено простое представление структуры классов.
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;
}
}
С этой структурой я могу установитьContext
вWorkshift
предоставляяInstanceCreator
к моемуGsonBuilder
, например:
Gson gson = new GsonBuilder()
.registerTypeAdapter(Workshift.class, new InstanceCreator<Workshift>() {
@Override
public Workshift createInstance(Type type) {
return new Workshift(context);
}
})
.create();
Я знаю, я могу добавить дополнительныеInstanceCreator
к моемуGsonBuilder
, но я не уверен, как предоставить ссылку на мойWorkshift
объект, который находится в процессе анализа (на лету)Visit
объект?
Любая помощь будет оценена!