Конвертировать Kotlin MutableMap в java.util.HashMap - PullRequest
0 голосов
/ 27 августа 2018

Я работаю с довольно старым проектом, в котором много java-кода, и заменить его будет слишком хлопотно, и поскольку kotlin намного лучше, чем java, я пытаюсь учиться весь новый код в kotlin, но когда я пытаюсь получить доступ к java-коду с этим kotlin-кодом

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 голосов
/ 27 августа 2018

Вы можете построить новый HashMap из параметров:

val params = mutableMapOf<String, String>(
    "name" to response.name,
    "type" to response.type
)
product.params = HashMap(params)
0 голосов
/ 27 августа 2018

Вместо этого вы можете использовать hashMapOf.

product.params = hashMapOf<String, Any?>(
    "name" to response.name,
    "type" to response.type
)
0 голосов
/ 27 августа 2018

Вам нужно использовать HashMap <> istead mutableMapOf ()

    val params = HashMap<String, String>()
    params.put("name", response.name)
    params.put("type", response.type)
    product.params = params
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...