在我的Scala Android项目中,我收到了一个奇怪的错误:
类型不匹配;发现:android.accounts.android.accounts.AccountManagerCallback [Boolean] 必需:android.accounts.android.accounts.AccountManagerCallback [Boolean]
在下面的代码中调用'removeAccount'时:
val accountManager = android.accounts.AccountManager.get(this)
for (account <- accountManager.getAccounts) {
accountManager.removeAccount(account,
new AccountManagerCallback[Boolean] {
override def run(result: AccountManagerFuture[Boolean]) {
try {
result.getResult(3, TimeUnit.SECONDS)
} catch {
case e: Exception => Log.d(getClass.getName, "exception: ", e)
}
}
}, new Handler())
}
}
关于出了什么问题以及如何安抚类型检查器的任何想法?
答案 0 :(得分:0)
..刚刚解决了,java.lang.Boolean和scala.Boolean之间存在混淆。需要在类类型参数中明确...
val accountManager = android.accounts.AccountManager.get(this)
for (account <- accountManager.getAccounts) {
accountManager.removeAccount(account,
new AccountManagerCallback[java.lang.Boolean] {
override def run(result: AccountManagerFuture[java.lang.Boolean]) {
try {
result.getResult(3, TimeUnit.SECONDS)
} catch {
case e: Exception => Log.d(getClass.getName, "exception: ", e)
}
}
}, new Handler())