首页 > 解决方案 > 将 Kotlin MutableMap 转换为 java.util.HashMap

问题描述

我正在处理一个非常古老的项目,其中有很多 java 代码,要替换它,这太麻烦了,而且由于 kotlin 比 java 好得多,我正在尝试将所有新的kotlin 中的代码,但是当我尝试使用此 kotlin 代码访问 java 代码时

val params = mutableMapOf<String, String>(
    "name" to response.name,
    "type" to response.type
)
product.params = params

我在下面有一个红色下划线params,它说

Required: Hashmap<String!, Any!>!
Found: MutableMap<String, String>

这是我的 java setter

public void setParams(HashMap<String, Object> params){
    this.params = params;
}

我可以在不更改 java 代码的情况下解决这个问题吗?如果可能或不可能,请提供帮助,以及解决此问题的解决方法是什么。

标签: javakotlinhashmap

解决方案


您可以从参数构造一个新HashMap的:

val params = mutableMapOf<String, String>(
    "name" to response.name,
    "type" to response.type
)
product.params = HashMap(params)

推荐阅读