Как использовать Scala varargs из кода Java

Существует множество статей о вызове Java vararg из кода Scala, но единственное, что я смог найти в обратном направлении, это этот вопрос:Использование методов scala vararg в java , у которого нет конкретных примеров.

Я пытаюсь использовать scala.Consoleиз кода Java, по той причине, что java.io.Consoleне работает в Eclipse, а Scala работает. Но я не могу заставить метод

def readLine (text: String, args: Any*): String

работать, потому что он, кажется, ожидает scala.collection.Seq[Any]для второго аргумента, и я не вижу, как создать Seqв Java. Как я могу обойти это?

Вещи, которые я пробовал:

1)Используя null

// Java
String s = scala.Console.readLine("Enter text: ", null);

-получайте вознаграждение в виде NullPointerException.

2)Замена nullна scala.collection.Seq.empty(), но javac сообщает о всевозможных ошибках, таких как Seqотсутствие метода empty.

3)Использование объекта Nilв объекте пакета scala.collection.immutable, но синтаксис предлагал здесь , что было бы scala.collection.immutable.package$Nil$.MODULE$, но это не может быть разрешено.

Конечно, я мог бы просто использовать метод readLine(), который не принимает varargs, но это было бы слишком просто.

19
задан Community 23 May 2017 в 11:59
поделиться