Могу ли я использовать scala List в Java, например:
import scala.collection.immutable.List;
class HelloScalaList {
public static void main (String[] args) {
List xs = List(1, 2, 3);
System.out.println(xs);
}
}
Кажется, он не компилируется. не может найти метод List $.apply.
когда я меняю его на
List xs = Dir.ls()
где Dir - мой класс scala, а ls() возвращает список scala, жалобы компилятора на
"Внутренняя ошибка компилятора: java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding не может быть передан в org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.initializeTypeVariable(BinaryTypeBinding.java:927)"
о котором я не знаю, что это значит.
Я хочу написать некоторую библиотеку в scala, но также хотел бы, чтобы она использовалась в Java.
В моем классе scala есть методы, возвращающие scala List, для использования Java-кода у меня есть два варианта:
-
использовать scala Список непосредственно в java
-
напишите класс-оболочку, который возвращает java.util.List для этих методов.
Я бы предпочел вариант 1, потому что в противном случае мне придется написать класс-оболочку почти для всех моих классов scala.
Но я просто не могу получить scala List, запущенный на Java.