将Kotlin MutableMap转换为java.util.HashMap

时间:2018-08-27 10:51:54

标签: java kotlin 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设置器

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

是否可以在不更改Java代码的情况下解决此问题?如果可能的话,请帮忙,如果不能解决,请解决什么方法。

3 个答案:

答案 0 :(得分:4)

您可以改用hashMapOf

product.params = hashMapOf<String, Any?>(
    "name" to response.name,
    "type" to response.type
)

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

您需要使用HashMap <>而不是mutableMapOf()

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