【问题标题】:Type mismatch Passing an Array in Scala JUnit test to Java method类型不匹配将 Scala JUnit 测试中的数组传递给 Java 方法
【发布时间】:2014-05-24 15:20:49
【问题描述】:

我是 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)
    }
}

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

【问题讨论】:

标签: java arrays scala junit scala-collections


【解决方案1】:

Seq 不是 Java Collection。你应该使用JavaConvertersimplicits 来转换它们:

import scala.collection.JavaConverters._

myMethod(Seq("myString").asJava)

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

import java.util.Arrays

myMethod(Arrays.asList("myString"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-17
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多