我从方法中获取值Object
。我知道这个对象将是Int
类型或Long
类型,但我事先并不知道它将是哪一个。如何将其投放到Int
或Long
?
不幸的是,我无法更改提供此方法的方法的返回类型,因此无法作为解决方案。
答案 0 :(得分:6)
如果仅返回Int
或Long
的方法被输入为Object
,则库API中存在实际问题。但是,你可以处理它。
但是,以下模式匹配应该起作用:
val five: Object = 5 //your method output
five match {
case n: java.lang.Integer => doSomethingWithInt(n)
case n: java.lang.Long => doSomethingWithLong(n)
}
您需要使用java.lang
,因为Int
和Long
实际上是基本类型int
和long
,因此它们不会继承Object
}。
答案 1 :(得分:0)
使用object.asInstanceOf[T]
转换为所需类型:)