【发布时间】:2017-08-18 10:22:12
【问题描述】:
我迁移了我的 Scala Play!从 Scala 2.11.11 到 Scala 2.12.3 的应用程序
从那时起,我在编译我的应用程序时收到以下错误:
type arguments [?,Equals] do not conform to trait Subtractable's type parameter bounds [A,+Repr <: scala.collection.generic.Subtractable[A,Repr]]
[error] for (req <- request.req.getRequestList) {
[error] ^
[error] one error found
出于某种原因,Scala 2.12 似乎在迭代 Java 数组时遇到了问题。
getRequestList 返回以下对象:Array[Req]。
有人遇到过这个问题吗?
这是我遇到问题的代码部分:
// Sorting the requests by Certificate Authority
for (req <- request.req.getRequestList) {
// Extracting the Key Hash from the request
val keyHash = getKeyHash(req)
// Extracting the Name Hash from the request
val nameHash = getNameHash(req)
// Retrieving the CA from the Key Hash or Name Hash
val ca = keyHash.flatMap(getCertificateAuthorityFromKeyHash).map { ca =>
Logger.debug(s"[${self.path.name}] - CA found based on Issuer Key Hash ('${keyHash.getOrElse("NA").toUpperCase}') -> '${ca.name}'")
ca
} orElse nameHash.flatMap(getCertificateAuthorityFromNameHash).map { ca =>
Logger.debug(s"[${self.path.name}] - CA found based on Issuer Name Hash ('${nameHash.getOrElse("NA").toUpperCase}') -> '${ca.name}'")
ca
} getOrElse {
Logger.debug(s"[${self.path.name}] - Unable to find CA based on Issuer Key Hash ('${keyHash.getOrElse("NA").toUpperCase}') and Name Hash ('${nameHash.getOrElse("NA").toUpperCase}'. Discarding request with Unauthorized status)")
throw new UnknownCertificateAuthorityException("CertificateID does not reference a registered Certificate Authority")
}
if (reqsByCA.contains(ca.id.get)) {
reqsByCA(ca.id.get) += req
} else {
reqsByCA += (ca.id.get -> ArrayBuffer(req))
}
}
request.re.getRequestList 返回一个 org.bouncycastle.cert.ocsp.Req (Array[org.bouncycastle.cert.ocsp.Req]) 的数组。
【问题讨论】:
-
向我们展示您的代码。
标签: scala playframework