gsonとretrofitを使用してJsonDeserializerを作成しました。 Javaで型引数がKotlinで認識されない
、クラスは次のように定義される。Kotlinで
public class Test implements JsonDeserializer<NavigationMenu[]> {...
、それは次のように定義される。
GSONに登録された後に、期待どおりclass NavigationMenuArrayDeserializer : JsonDeserializer<Array<NavigationMenu>> {...
Javaクラスが呼び出されます。 Kotlinクラスは呼び出されません。
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);
}
任意のアイデアなぜですか?
あなたは、それを登録している:https://static.javadoc.io/com.google .code.gson/gson/2.6.2/com/google/gson/JsonDeserializer.html – guenhter
このデシリアライザを使用しているコードを表示できますか? –
私が働いている会社に問題があるかもしれないので、私は躊躇しています。クラスが呼び出されることはないので、コードは実行されません。 kotlinをJavaに切り替えると、うまくいきました。それはkotlin配列の何かです