是否有隐式方法将scala.collection.mutable.StringBuilder转换为java.lang.StringBuilder?
我使用的是一个Java库(JCommander),其中一个方法(usage)带有一个java.jang.StringBuilder参数。
发布于 2011-06-02 00:03:15
您不能从一个Scala StringBuilder开始,然后获得它的Java版本。但是,您可以在Scala版本中包装java.lang.StringBuilder。所以:
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由于Scala包装器不存储任何状态(而只是引用Java版本),因此您可以安全地混合使用这两者。
发布于 2011-06-01 22:36:26
看一下源代码,似乎完全没有办法从scala.collection.mutable.StringBuilder中获取java.lang.StringBuilder。
您可以使用Scala创建一个新的java.lang.StringBuilder,通过某种类型(String或CharSequence)的转换。
发布于 2011-06-01 21:31:25
使用此隐式转换执行以下操作:
implicit def b2b(b: scala.collection.mutable.StringBuilder) =
new java.lang.StringBuilder(b)https://stackoverflow.com/questions/6201546
复制相似问题