Since you use Anyas a type, you cannot get the type of arguments. A type Anyhas no method getClass(it is not a reference class at all). See http://www.scala-lang.org/node/128 for more details .
What you can try:
def foo(args: Any*) = args.map { arg => {
arg match {
case reference:AnyRef => reference.getClass.toString
case null => "null"
}}}
val s: String = null
val result = foo("a", 1, 'c', 3.14, s, new Object, List(1), null)
result.foreach(println)
It is output:
class java.lang.String
class java.lang.Integer
class java.lang.Character
class java.lang.Double
null
class java.lang.Object
class scala.collection.immutable.$colon$colon
null
source
share