【发布时间】:2010-11-03 18:33:21
【问题描述】:
我正在绞尽脑汁想弄清楚如何做以下事情:
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 )
}
给我类型错误:
找到:数组[任何]
必需的序列[java.lang.Object]
我尝试过强制转换,它编译但失败的原因与第一个示例几乎相同。当我尝试时
println(String.format(msg, (o :: List(os:_*)) :_* ))
由于隐式转换歧义(any2ArrowAssoc 和 any2stringadd)而无法编译
【问题讨论】: