Я рву волосы, пытаясь понять, как сделать следующее:
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, o :: List(os:_*)) )
}
Есть причина, почему я должен объявлять метод с o
и os
Seq
отдельно. По сути, я получаю метод форматирования, вызываемый с одним параметром объекта (типа List
). Попытка:
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, (o :: List(os:_*))).toArray )
}
Дает мне ошибку типа:
найдено: Array [Any]
требуется Seq [java.lang.Object]
Я пробовал приведение, которое компилируется, но завершается неудачно по той же причине, что и в первом примере. Когда я пытаюсь
println(String.format(msg, (o :: List(os:_*)) :_* ))
это не компилируется с неявной неоднозначностью преобразования (any2ArrowAssoc
и any2stringadd
)