Is there an implicit method to convert scala.collection.mutable.StringBuilder to java.lang.StringBuilder?
I am using a Java library (JCommander) in which one of the methods (usage
) takes a java.jang.StringBuilder
argument.
You can't start with a Scala StringBuilder
and then obtain the Java version. You can, however, wrap a java.lang.StringBuilder
in the Scala version. So:
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
Since--not a guarantee, but true in practice right now (2.8, 2.9)--the Scala wrapper doesn't store any state (instead just referring to the Java version), you're safe to mix and match usage of the two.
Looking at the source code, it seems there's absolutely no way to get a java.lang.StringBuilder
from a scala.collection.mutable.StringBuilder
.
You can create a new java.lang.StringBuilder
with Scala's, going through a conversion of some type (String
or CharSequence
).
Use this implicit transform do do this:
implicit def b2b(b: scala.collection.mutable.StringBuilder) =
new java.lang.StringBuilder(b)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With