次のようなメソッドを持つものをログに記録する 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}"
さて、params を適切に消費できる 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