从 Groovy 调用 Scala:如何处理不同的集合类型?
我使用Groovy 进行测试,使用Scala 进行实际代码。显然,我经常使用 Scala 的集合类型 - 但是当我在 Groovy 中生成测试数据时,我经常使用 java.util.* 类型。
我开始基于 scalaj-collection 库编写静态转换方法。但这并不“时髦”。
将一种方式转换为另一种方式的最佳方法是什么? 隐式转换可能会以某种方式起作用吗?
更新:
例如,如果我不会手动转换我当然得到的类型:
groovy.lang.MissingMethodException:
No signature of method: static setup is applicable for argument types: (java.util.ArrayList)
Possible solutions: setup(scala.collection.immutable.List)
I'm using Groovy for testing and Scala for actual code. Obviously I often use Scala's collection types - but when I generate test data in Groovy I often use the java.util.*-types.
I started writing static conversion methods based on the scalaj-collection library. But that's just not 'groovy'.
What's the best approach to convert one to the other?
Might implicit conversions work somehow?
UPDATE:
For example if I wouldn't manually convert the types I of course get:
groovy.lang.MissingMethodException:
No signature of method: static setup is applicable for argument types: (java.util.ArrayList)
Possible solutions: setup(scala.collection.immutable.List)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否尝试过“内置”隐式转换?
Did you try the "built-in" implicit conversions?
另一种方法是更改 Scala 代码以在声明参数时使用 Java 集合类型,并依赖方法主体中的隐式转换来获得 Scala 集合操作的优势。
Another approach is to change your Scala code to use Java collection types when declaring parameters and rely on implicit conversions in the method body to get the benefit of Scala collections operations.