Scala for Android - 奇怪的类型不匹配错误

时间:2014-07-22 14:27:41

标签: android scala

在我的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())
  }
}

关于出了什么问题以及如何安抚类型检查器的任何想法?

1 个答案:

答案 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())