将 Kotlin MutableMap 转换为 java.util.HashMap

Fad*_*ara 5 java hashmap kotlin

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

val params = mutableMapOf<String, String>(
    "name" to response.name,
    "type" to response.type
)
product.params = params
Run Code Online (Sandbox Code Playgroud)

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

Required: Hashmap<String!, Any!>!
Found: MutableMap<String, String>
Run Code Online (Sandbox Code Playgroud)

这是我的 java setter

public void setParams(HashMap<String, Object> params){
    this.params = params;
}
Run Code Online (Sandbox Code Playgroud)

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

Aka*_*dze 10

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

val params = mutableMapOf<String, String>(
    "name" to response.name,
    "type" to response.type
)
product.params = HashMap(params)
Run Code Online (Sandbox Code Playgroud)


Epi*_*rce 4

你可以用hashMapOf它代替。

product.params = hashMapOf<String, Any?>(
    "name" to response.name,
    "type" to response.type
)
Run Code Online (Sandbox Code Playgroud)