Istnieje wiele artykułów na temat wywoływania Java varargs z kodu Scala, ale jedyną rzeczą, którą mogłem znaleźć odwrotnie było to pytanie: Using scala vararg methods in java, które nie ma konkretnych przykładów.Jak używać Scala varargs z kodu Java
Próbuję użyć scala.Console
z niektórych kodu Java, ponieważ java.io.Console
nie działa w środowisku Eclipse, podczas gdy Scala ma. Ale nie mogę uzyskać metoda
def readLine (text: String, args: Any*): String
do pracy, ponieważ wydaje się, że spodziewa się scala.collection.Seq[Any]
dla drugiego argumentu, a ja nie wiem, jak stworzyć Seq
w Javie. Jak mogę obejść ten problem?
Czego próbowałem:
1) Korzystanie zerowy
// Java
String s = scala.Console.readLine("Enter text: ", null);
- nagrodzony z NullPointerException
.
2) Wymiana null
z scala.collection.Seq.empty()
, ale raporty javac wszelkiego rodzaju błędy takie jak Seq
nie posiadające metody empty
.
3) Korzystanie z obiektu w opakowaniu obiektu scala.collection.immutable
Nil
, ale składnia sugeruje here, co byłoby scala.collection.immutable.package$Nil$.MODULE$
, ale które nie mogą być rozwiązane.
Oczywiście mogłem po prostu użyć metody readLine()
, która nie bierze varargs, ale to byłoby zbyt łatwe.
Edytowałem odpowiedź. – axel22
Świetnie, że działa. Oba nadal pokazują błędy w Eclipse, ale faktycznie się kompilują. To mogło być częścią problemu. –