【问题标题】:Should I use collectionAsScalaIterable({java collection}) or Seq({java collection}).flatten?我应该使用 collectionAsScalaIterable({java collection}) 还是 Seq({java collection}).flatten?
【发布时间】:2013-08-24 20:54:07
【问题描述】:

我们开始使用 Scala Test 来测试我们的 Java 应用程序,我想测试 Java 集合的内容。我们提出了两种可能性:

JavaConversions.collectionAsScalaIterable(getJavaCollection()) must contain(allOf(item1, item2).inOrder)

Seq(getJavaCollection()).flatten mustEqual Seq(item1, item2)

作为 Scala 的初学者,我想知道哪种方式更好(或者有更好的方式)?

【问题讨论】:

    标签: scala scala-java-interop


    【解决方案1】:
    import scala.collection.JavaConverters._
    val col = getJavaCollection().asScala //a scala mutable Buffer
    col mustEqual Seq(item1, item2)
    

    您可以将col 用作Seq 并执行必要的计算。

    有时最好用google :)

    1. How can I convert a Java Iterable to a Scala Iterable?
    2. How to convert a java.util.List to a Scala list
    3. Iterating over Java collections in Scala
    4. Converting a Java collection into a Scala collection

    【讨论】:

    • 如果我在你的答案中使用 mustEqual,我得到Wrappers(item1, item2) is not equal to List(item1, item2)。但是,我可以做 getJavaCollection().asScala must contain(allOf(item1, item2).inOrder) 并且它通过了。感谢您提供指向 JavaConverters 的指针。
    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多