【发布时间】:2011-01-21 00:13:48
【问题描述】:
我有一个记录东西的 Java 类,它的方法如下:
void info(Object message, Object... params);
在 Scala 中,我为这样的调用创建了一个包装器,如下所示:
def info(msg: => String, params: Any*) {
log.info(msg, params);
}
当我打电话时:
val host = "127.0.0.1"
val port = "1234"
info("Start on {0}:{1}", host, port)
我明白了:
"Started on WrappedArray(127.0.0.1, 1234):{1}"
现在,有人现在如何将参数转换为可以正常使用的 Object[] 吗?
我尝试过:
def info(msg: => String, params: Any*)
log.info(msg, params.toList.toArray);
}
但这不起作用:
"Started on [Ljava.lang.Object;@14a18d:{1}"
当你这样做时会发生类似的事情:
params.asInstanceOf[WrappedArray[Object]].array
【问题讨论】: