java - 类型不匹配将 Scala JUnit 测试中的数组传递给 Java 方法

标签 java arrays scala junit scala-collections

我是 Scala 新手

我有一个像下面这样的java方法

public void myMethod (Collection<String> param) throws MyException {
    // process param
}

我想使用 Scala Junit 测试来测试此方法

@Test
def myMethodTest() {
    try {
        ....myMethod(Seq("myString"))
    } catch {
        case e : MyException => throw new AssertionError ("Failed myMethod : " + e.getMessage)
    }
}

但它给了我一个类型不匹配错误。我该如何解决这个问题?

最佳答案

Seq不是 Java Collection 。您应该使用JavaConverters隐式转换它们:

import scala.collection.JavaConverters._

myMethod(Seq("myString").asJava)

或者您可以直接使用Java集合,例如通过Arrays.asList() :

import java.util.Arrays

myMethod(Arrays.asList("myString"))

关于java - 类型不匹配将 Scala JUnit 测试中的数组传递给 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22996165/

相关文章:

java - 仅向客户端共享 getter 方法的最佳方法是什么?

java - 如何将 javadoc 附加到 Eclipse Java EE Juno?

c++ - 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针?

scala - 关于如何以编程方式从 json 文件开始创建自定义 org.apache.spark.sql.types.StructType 架构对象

java - 使用 Hibernate、Postgres 和 Guice Provider 时“事务中空闲”

arrays - C++11 段错误试图动态地将数组(<algorithm>)复制到向量中

arrays - 如何从和构建二进制矩阵

scala - 以不同的方式链式运作

scala - 如何在 Scala Play2 微服务的根目录中轻松提供 Swagger UI?

java - httpsservelet 响应未返回 sendError 状态代码