Если вы используете Any
в качестве типа параметра, вы не сможете определить тип аргументов статически. Вам нужно будет использовать instanceof
или сопоставление с образцом:
def foo(args: Any*) = for (a <- args) a match {
case i: Int =>
case s: String =>
case _ =>
}
К сожалению, это не в состоянии обрабатывать нулевые значения.
Если вам нужны статические типы, вам придется использовать перегрузку:
def foo[A](arg1: A)
def foo[A, B](arg1: A, arg2: B)
def foo[A, B, C](arg1: A, arg2: B, arg3: C)
...