Пара Kotlin используется, но метод ожидает android.util.Pair - PullRequest
0 голосов
/ 01 октября 2018

У меня PreferencesManager, написанный на Java с использованием следующего метода:

 public void insert(Pair<String, Object> keyValue, boolean async) {

И из kotlin я пытаюсь вставить новую пару в PreferencesManager следующим образом:

 val  p = Pair(SharedPreferencesManager.STATIC_KEY, value)
            preferencesManager!!.insert(p, false)

Однако я получаю сообщение об ошибке:

"Требуется android.util.Pair, найдено kotlin.Pair" ...

Есть ли способ, которым я могупреобразовать из одного в другой?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

В качестве альтернативы ответа @ TheWanderer дал в комментариях вопрос.Я бы предложил импортировать android.util.Pair с использованием ключевого слова as следующим образом:

import android.util.Pair as APair
//....
val  p = APair(SharedPreferencesManager.STATIC_KEY, value)
preferencesManager!!.insert(p, false)

См. Документы kotlin об импорте для получения дополнительной информации .Пакет kotlin всегда собирается импортироваться и, очевидно, будет иметь приоритет над классами из других пакетов, если вы не переименуете их или не определите их полностью.

0 голосов
/ 01 октября 2018

Kotlin имеет свою собственную пару, которая не является расширением или прокси для android.util.Pair.Попробуйте вместо этого использовать вспомогательный метод:

public void insert(String key Object value, boolean async) {
    Pair<String, Object> pair = new Pair<>(key, value);
    insert(pair, async);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...