If you have an AnyRef (the scala equivalent of java.lang.Object), you
can just check value.isInstanceOf[Number], as you've already done.
If you have an Any (a Scala-only type that encompasses primitives and
reference types), you can do something like this:
scala> def asNumber(a: Any) = a.asInstanceOf[AnyRef] match {
case n : Number => Some(n)
case _ => None
}
asNumber: (a: Any)Option[java.lang.Number]
scala> asNumber(1)
res6: Option[java.lang.Number] = Some(1)
scala> asNumber(Int.box(1))
res7: Option[java.lang.Number] = Some(1)
scala> asNumber("1")
res8: Option[java.lang.Number] = None
It's always safe to call .asInstanceOf[AnyRef], which will box
primitives, i.e. wrap a Int in a java.lang.Integer.
But if you provide a but more context of what you're trying to do, we
might find an even better solution.
-jason
maybe
isInstanceOf[java.lang.Number]
resp.
o match { case n: Number =>
helps you