Using gson and retrofit and created a JsonDeserializer.
In java, the class is defined as:
public class Test implements JsonDeserializer<NavigationMenu[]> {...
In Kotlin, it is defined as:
class NavigationMenuArrayDeserializer : JsonDeserializer<Array<NavigationMenu>> {...
The java class is called as expected after being registered with GSON. The Kotlin class is never called.
Retrofit jsonClient = new Retrofit
.Builder()
.baseUrl(baseUrl)
.client(okHttpClient)
.addConverterFactory(getGsonConverter())
.build();
...
private GsonConverterFactory getGsonConverter() {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setLenient();
gsonBuilder.registerTypeAdapter(NavigationMenu[].class, new NavigationMenuArrayDeserializer());
Gson gson = gsonBuilder.create();
return GsonConverterFactory.create(gson);
}
Any idea why?