【问题标题】:Scala for Android - Curious type mismatch errorScala for Android - 奇怪的类型不匹配错误
【发布时间】:2014-09-13 10:25:13
【问题描述】:

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

关于出了什么问题以及我可以做些什么来安抚类型检查器的任何想法?

【问题讨论】:

    标签: android scala


    【解决方案1】:

    .. 刚刚解决了,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())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多