【问题标题】:Java to Kotlin_ Gson.Json Conversion ErrorJava 到 Kotlin_Gson.Json 转换错误
【发布时间】:2019-10-17 02:14:19
【问题描述】:

从 java 转换为 kotlin 时,输出如下所示 爪哇:

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&lt;String, String&gt;

如何解决这个问题?

【问题讨论】:

    标签: java android json kotlin gson


    【解决方案1】:

    您不能在 Kotlin 中引用具有泛型参数的类,就像在 java 中不能引用它们一样。所以Map&lt;*, *&gt;::class 在 Kotlin 中与 Map&lt;?, ?&gt;.class 在 Java 中一样是无效的。替换这个:

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

    这样:

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

    【讨论】:

    • 感谢支持。我也用非空检查更新了代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多