正在使用Kotlin Pair,但方法需要使用android.util.Pair

时间:2018-10-01 14:00:35

标签: java android kotlin

我有一个用Java使用以下方法编写的PreferencesManager:

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

然后从Kotlin,我尝试像这样将新的Pair插入PreferencesManager中:

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

但是我遇到一个错误:

  

“需要android.util.Pair,找到kotlin.Pair” ...

有没有办法我可以从一个转换为另一个?

2 个答案:

答案 0 :(得分:6)

作为问题的评论中answer @TheWanderer的替代方案。我建议使用as关键字导入android.util.Pair,如下所示:

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

请参见kotlin docs on importing for more。 kotlin软件包将始终导入,并且显然将优先于其他软件包中的类,除非您对它们进行重命名或完全限定它们。

答案 1 :(得分:2)

科特林有自己的配对,不是android.util.Pair的扩展或代理。尝试改用辅助方法:

public void insert(String key Object value, boolean async) {
    Pair<String, Object> pair = new Pair<>(key, value);
    insert(pair, async);
}