I'm tearing my hair out trying to figure out how to do the following:
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, o :: List(os:_*)) )
}
There's a reason why I have to declare the method with an o
and an os
Seq
separately. Basically, I end up with the format method called with a single object parameter (of type List
). Attempting:
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, (o :: List(os:_*))).toArray )
}
Gives me the type error:
found: Array[Any]
required Seq[java.lang.Object]
I've tried casting, which compiles but fails for pretty much the same reason as the first example. When I try
println(String.format(msg, (o :: List(os:_*)) :_* ))
this fails to compile with implicit conversion ambiguity (any2ArrowAssoc
and any2stringadd
)
def foo(msf: String, o: AnyRef, os: AnyRef*) =
println( String.format(msf, (o :: os.toList).toArray : _* ))