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

dav*_*307 2 java android kotlin

我有一个用Java编写的PreferencesManager,方法如下:

 public void insert(Pair<String, Object> keyValue, boolean async) {
Run Code Online (Sandbox Code Playgroud)

从kotlin我试图将一个新的Pair插入到PreferencesManager中,如下所示:

 val  p = Pair(SharedPreferencesManager.STATIC_KEY, value)
            preferencesManager!!.insert(p, false)
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误说:

"需要android.util.Pair,找到kotlin.Pair"......

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

wha*_*ley 7

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

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

有关更多信息,请参阅有关导入kotlin文档.kotlin包总是要导入,显然优先于其他包的类,除非你重命名它们或完全限定它们.


The*_*rer 3

Kotlin 有自己的 Pair,它不是android.util.Pair. 尝试使用辅助方法:

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