从 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/