我有一段Scala代码:
class A {
def main(args: Array[String])
}
然后是一段Java代码:
class B {
public static int test(final String... args) {
System.out.println("This is a test.");
// Use the arguments
...
}
}
我想要的是在 A.main 中调用 B.test,如下所示:
class A {
def main(args: Array[String]) = {
val result = B.test(args)
}
}
上面的代码不会工作,因为类型不匹配。如果有人可以提供一个优雅的解决方案,我们将不胜感激。
请仅更改 Scala 部分,因为 Java 部分将来自另一个库。谢谢!
最佳答案
根据 section 4.6.2 of scala language specification ,将列表/数组提供给带有重复参数 (T... args)
(如果是 java)或 (args: T*)
(如果是 scala)的函数,参数应通过 _*
类型注释标记为序列参数。
在这种特殊情况下,B.test(args: _*)
将起作用。
关于java - 如何将 Scala 命令行参数传递给 Java 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21041809/