我正在尝试String
使用Int
提取器。我的代码如下所示。
object Apply {
def unapply(s: String): Option[Int] = try {
Some(s.toInt)
} catch {
case _: java.lang.Exception => None
}
}
object App {
def toT[T](s: AnyRef): Option[T] = s match {
case v: T => Some(v)
case _ => None
}
def foo(param: String): Int = {
//reads a Map[String,String] m at runtime
toT[Int](m("offset")).getOrElse(0)
}
}
我收到运行时错误:java.lang.String cannot be cast to java.lang.Integer
. 似乎根本没有使用提取器。我应该怎么办?
编辑:我的用例如下。我正在使用 play,我想解析在 url 中传递的查询字符串。我想获取查询字符串值(String)并将其用作 Int、Double 等。例如,
val offset = getQueryStringAs[Int]("offset").getOrElse(0)