在Scala中将任何类型转换为整数?

8

如何将 Any 转换为 Integer?

具体来说,我有一个返回 Any 类型的函数,在某种情况下,我知道它会返回一个类型为 Any 的数字,并且我需要将该数字转换为 Integer 类型,以便在另一个函数中使用。


7
x.asInstanceOf[Int] 的意思是将变量 x 强制转换为 Int 类型。但如果你正在处理类型为 Any 的数据,那么就意味着出现了严重的错误。 - jwvh
我有一个函数,它在map[String, Any]中搜索,其中Any可以是多种不同的数据类型,并根据字符串返回类型Any。在这种情况下,我让它搜索数字,但以Any类型返回。 - user7804781
@jwvh 看起来可以了!请把它放在答案里,这样我就可以接受了。 - user7804781
6
拥有这样的“Any”映射通常不是一个好主意。 - cchantep
1个回答

8
你的函数很可能设计得很糟糕。99% 的情况下,都有更好的方法来处理 API 入口点返回的 Any
如果你坚持要处理 Any,将其安全地转换为整数的方法如下:
def toInt(x: Any): Option[Int] = x match {
  case i: Int => Some(i)
  case _ => None
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接