当我尝试将 anAny
与字符串匹配时,我没有得到正确的输出。我的代码如下所示:
def typecast(cls: Any) {
cls match {
case s: String => println("string")
case d: Double => println("double")
case i: Int => println("int")
case o: Option[_] => println("option")
case _ => println("nothing")
}
}
如果cls
是Double
or类型Int
,则匹配正确的大小写,但匹配类型String
orOption[_]
大小写 _ (println("nothing"))。
任何想法为什么这不起作用或我做错了什么?提前致谢!
编辑:如果我这样做,它可以正常工作,例如typecast("foo")
or typecast(Some("foo"))
,但在我的情况下,cls
收到的值如下:
val cls: Any = classOf[User].getDeclaredField("name")
字段可能是 aString
或Option[String]