que tienen una clase Java que registra cosas que tiene un método como este:Transformación Scala varargs en Java Object ... varargs
void info(Object message, Object... params);
En Scala, he creado una envoltura alrededor de dicha llamada que parece esto:
def info(msg: => String, params: Any*) {
log.info(msg, params);
}
Cuando llamo:
val host = "127.0.0.1"
val port = "1234"
info("Start on {0}:{1}", host, port)
me sale:
"Started on WrappedArray(127.0.0.1, 1234):{1}"
Ahora, ¿alguien ahora cómo convertir params en un objeto [] que se puede consumir correctamente?
he tratado de hacer:
def info(msg: => String, params: Any*)
log.info(msg, params.toList.toArray);
}
Pero eso no funciona:
"Started on [Ljava.lang.Object;@14a18d:{1}"
Algo similar sucede cuando haces:
params.asInstanceOf[WrappedArray[Object]].array
¿Puedo preguntarte cómo 'info ("Start on {0}: {1}", host, port)' se transforma en "Started on 127.0.0.1:1234"? ¿Es su código su estándar RichString? – Andrey
Esto es transformado por algún código Java que se me proporcionó. El método que formatea se llama formatString en http://anonsvn.jboss.org/repos/infinispan/trunk/core/src/main/java/org/infinispan/util/Util.java –
Gracias por la solución. ¿Por qué no lo marcas como una respuesta? –