No puede iniciar con un Scala StringBuilder
y luego obtener la versión de Java. Sin embargo, puede ajustar un java.lang.StringBuilder
en la versión de Scala. Por lo tanto:
val jsb = new java.lang.StringBuilder();
val sb = new StringBuilder(jsb);
// Do Scala-y stuff with sb
JCommander.whatever.usage(jsb);
// Do more Scala-y stuff
Desde - no es una garantía, pero cierto en la práctica en este momento (2.8, 2.9) - el envoltorio Scala no almacena ningún estado (en su lugar sólo en referencia a la versión Java), que' Es seguro mezclar y combinar el uso de los dos.
En realidad, no creo que funcione. Supongo que cualquier método de Java que espere un 'java.lang.StringBuilder' espera modificarlo y permitir que la persona que llama tenga acceso a esos cambios. El método "implícito" que muestra crea una copia "defensiva" de 'scala.collection.mutable.StringBuilder'. Cualquier cambio en el método llamado ** no ** se reflejará en 'scala.collection.mutable.StringBuilder'. Ahora que lo pienso, la única forma en que podría implementarse es si 'scala.collection.mutable.StringBuilder' se extendió o envolvió' java.lang.StringBuilder'. – Ralph