Могу ли я использовать 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 в
org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.initializeTypeVariable (BinaryTypeBinding.java:927) "
что я понятия не имею, что это значит.
Я хочу написать библиотеку в Scala, но также хотел бы, чтобы она использовалась в Java.
В моем классе scala есть методы, которые возвращают Scala List, для использования Java-кода у меня есть две опции:
использовать scala List в java напрямую
написать класс-оболочку, который возвращает java.util.List для этих методов.
Я бы предпочел вариант 1, потому что в противном случае мне придется написать класс-обертку почти для ВСЕХ моих классов Scala.
Но я не могу запустить Scala List на Java.