【发布时间】:2012-04-21 01:38:51
【问题描述】:
有很多关于从 Scala 代码调用 Java varargs 的文章,但我唯一能找到相反的方法是这个问题:Using scala vararg methods in java,它没有任何具体示例。
我正在尝试从一些 Java 代码中使用 scala.Console,因为 java.io.Console 在 Eclipse 中不起作用,而在 Scala 中起作用。但我无法获得方法
def readLine (text: String, args: Any*): String
工作,因为它似乎期待 scala.collection.Seq[Any] 作为第二个参数,我不知道如何在 Java 中创建 Seq。我该如何解决这个问题?
我尝试过的事情:
1) 使用 null
// Java
String s = scala.Console.readLine("Enter text: ", null);
- 获得NullPointerException 的奖励。
2) 将null 替换为scala.collection.Seq.empty(),但javac 会报告各种错误,例如Seq 没有empty 方法。
3) 在scala.collection.immutable 包对象中使用Nil 对象,但语法建议here,即scala.collection.immutable.package$Nil$.MODULE$,但无法解析。
当然我可以只使用不带可变参数的readLine() 方法,但这太容易了。
【问题讨论】:
标签: java scala console scala-java-interop