Java 到 Kotlin_Gson.Json 转换错误

标签 java android json kotlin gson

从 java 转换为 kotlin 时,输出如下 Java:

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

Kotlin :

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>

如何解决这个问题?

最佳答案

您无法在 Kotlin 中引用类及其泛型参数,就像您无法在 java 中引用它们一样。所以Map<*, *>::class在 Kotlin 中与 Map<?, ?>.class 一样无效。是在Java中。替换这个:

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

这样:

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

关于Java 到 Kotlin_Gson.Json 转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56394912/

相关文章:

java - 不可翻译的资源只能在基本值/文件夹中定义 - Android Export APK

c# - 当使用 JSON 中的重复键反序列化字典时,如何强制抛出异常?

json - Realm + Swift,嵌套 JSON

java - Java 中简单的类似数据库的集合类

java - Jawr 不能包含单个 CSS 文件

java - Java 上的条码扫描器实现

php - 如何在sql中用group concat连接三个表

java - Java有 `::`运算符吗?

android - Android webview中隐藏在键盘下方的文本框

android - Html.fromHtml 函数的 "font"标记中有哪些字体可用?