次のように、Java で scala List を使用できますか。
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 List を返します。
「内部コンパイラ エラー: java.lang.ClassCastException: org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding は、org.eclipse.jdt.internal で org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding にキャストできません。 compiler.lookup.BinaryTypeBinding.initializeTypeVariable(BinaryTypeBinding.java:927)"
私はそれが何を意味するのか分かりません。
ライブラリを scala で書きたいのですが、それを Java でも使用したいと考えています。
私のscalaクラスには、scala Listを返すメソッドがあり、Javaコードでそれらを使用するには、2つのオプションがあります。
javaでscala Listを直接使用する
これらのメソッドの java.util.List を返すラッパー クラスを記述します。
オプション 1 が望ましいです。そうしないと、ほぼすべての scala クラスのラッパー クラスを作成する必要があります。
しかし、Java で実行されている scala List を取得できません。