我有一个用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” ...
有没有办法我可以从一个转换为另一个?
答案 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);
}