首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala StringBuilder

Scala StringBuilder
EN

Stack Overflow用户
提问于 2011-06-01 21:00:18
回答 3查看 6.4K关注 0票数 11

是否有隐式方法将scala.collection.mutable.StringBuilder转换为java.lang.StringBuilder?

我使用的是一个Java库(JCommander),其中一个方法(usage)带有一个java.jang.StringBuilder参数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-02 00:03:15

您不能从一个Scala StringBuilder开始,然后获得它的Java版本。但是,您可以在Scala版本中包装java.lang.StringBuilder。所以:

代码语言:javascript
复制
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版本),因此您可以安全地混合使用这两者。

票数 10
EN

Stack Overflow用户

发布于 2011-06-01 22:36:26

看一下源代码,似乎完全没有办法从scala.collection.mutable.StringBuilder中获取java.lang.StringBuilder

您可以使用Scala创建一个新的java.lang.StringBuilder,通过某种类型(StringCharSequence)的转换。

票数 4
EN

Stack Overflow用户

发布于 2011-06-01 21:31:25

使用此隐式转换执行以下操作:

代码语言:javascript
复制
    implicit def b2b(b: scala.collection.mutable.StringBuilder) = 
        new java.lang.StringBuilder(b)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6201546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档