slf4j にラッパーを書き込もうとしています。
メソッドを書きました。それらの2つは次のとおりです。
def logWarn(message: => String, arg1: => AnyRef) = {
if (logger.isWarnEnabled) {
logger.warn(message, arg1)
}
}
def logWarn(message: => String, args: => Array[AnyRef]) = {
if (logger.isWarnEnabled) {
logger.warn(message, args)
}
}
これはうまくコンパイルされます。問題は呼び出そうとしています:
logWarn("retried: {}. Error is: {}", Array[AnyRef](numOfRetries.toString(), e.toString()));
上記の 2 番目のメソッドを呼び出すつもりであることを Scala が認識することを期待します。いくつかの理由で、このエラーが発生します。
ambiguous reference to overloaded definition, both method logWarn in trait Slf4jLogger of type
(message: => String, args: => Array[AnyRef])Unit
and method logWarn in trait Slf4jLogger of type (message: => String, arg1: => AnyRef)Unit
match argument types (java.lang.String,Array[AnyRef])
どうしたの?