Ошибка преобразования Java в Kotlin_ Gson.Json - PullRequest
0 голосов
/ 31 мая 2019

При конвертации из Java в Kotlin вывод будет выглядеть следующим образом Java:

Gson gson = new Gson();
    String strObj = getIntent().getStringExtra("passdata");
    userDictionery  = gson.fromJson(strObj, Map.class);

Котлин:

val gson = Gson()
    val strObj = intent.getStringExtra("passdata")
    userDictionery = gson.fromJson<Map<*, *>>(strObj, Map<*, *>::class.java) as Map<String, String>?

Но вторая строка в kotlin показывает ошибку, что - Только классы допускаются в левой части литерала класса

переменная userDictionery объявлена ​​как Map<String, String>

Как решить эту проблему?

1 Ответ

1 голос
/ 31 мая 2019

Вы не можете ссылаться на классы с их общими параметрами в Kotlin так же, как вы не можете ссылаться на них в Java.Таким образом, Map<*, *>::class недопустимо в Kotlin, как Map<?, ?>.class в Java.Заменить это:

gson.fromJson<Map<*, *>>(strObj, Map<*, *>::class.java)

На что:

gson.fromJson<Map<*, *>>(strObj, Map::class.java)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...