Фабрика с несколькими преобразователями из специального десериализатора GSON - PullRequest
0 голосов
/ 06 августа 2020

Моя проблема в том, что я не могу преобразовать ответ от сервера в определенный класс c, потому что при модернизации должен использоваться второй, а не первый. Кстати, теперь мой модифицированный клиент выглядит так:

val retrofit = Retrofit.Builder()
        .baseUrl(url)
        .client(okHttpClient)
        .addConverterFactory(createGsonConverter(ApplicationValues::class.java, ApplicationInstanceDeserializer()))
        .addConverterFactory(createGsonConverter(SchemeDefinition::class.java, DefinitionDeserializer()))
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxErrorHandlingCallAdapterFactory.create()).build()
return retrofit.create(T::class.java)

Может кто-нибудь что-то предложить, как мне сделать десериализацию, если ответ возвращает другую строку JSON и мне нужно преобразовать ее в соответствующий класс данных.

Кстати, я понимаю, что Converter.Factory должен возвращать значение null, чтобы можно было модифицировать второй преобразователь, но я не понимаю этого полностью, потому что метод addConverterFactory() не принимает нулевое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...