繁体   English   中英

java.lang.ClassCastException: [B 不能转换为 play.twirl.api.Html

[英]java.lang.ClassCastException: [B cannot be cast to play.twirl.api.Html

我正在接受一个项目并将其升级到 Play 2.5(从 2.1)。 我遇到的一个问题是这个测试:

  val actualResult : Result = ...

  val it = Iteratee.fold[Html, List[Html]](List.empty) {
      (a, b) => {
        b :: a
      }
    }

    val bodyIt = actualResult.body.asInstanceOf[Enumerator[Html]].apply(it)
    val bodyItResult = Await.result(bodyIt, 1 second)
    val bodyList = Await.result(bodyItResult.run, 1 second)
    val bodyText = bodyList.toString

    bodyText should include(callbackUrl)
  }

我收到错误

java.lang.ClassCastException: [B cannot be cast to play.twirl.api.Html

扔进迭代器。 为什么它不能投射对象?

正如 Sergey 指出的,这是一种类型不匹配,我按如下方式解决了它:

  val actualResult : Result = ...

  val it = Iteratee.fold[Array[Byte], List[Array[Byte]]]](List.empty) {
      (a, b) => {
        b :: a
      }
    }

    val bodyIt = actualResult.body.asInstanceOf[Enumerator[Html]].apply(it)
    val bodyItResult = Await.result(bodyIt, 1 second)
    val bodyList = Await.result(bodyItResult.run, 1 second)
    val bodyBytes = bodyList.head
    val bodyText = new String(bodyBytes)
    bodyText should include(callbackUrl)
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM