2011-06-06 18 views
0

Netbeansでは、他の誰かが書いたスカラコード(jar)を使用し、Scala-library.jarとともにJavaプロジェクトプロジェクトに組み込みました。それはうまくいきませんでした。私はそれを用い日食を実行しようとするとき、私はグーグルで、次のビルドエラーeclipse ideでのScalaコードの使用。内部コンパイラエラー

Internal compiler error: java.lang.ClassCastException: 
org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding cannot be cast to 
org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding at 
org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.initializeTypeVariable(BinaryTypeBinding.java:944) DemoApp.java /demo/ line 0 Java Problem 

を取得

は今、私は他の人がこの問題を抱えていたが、いずれかの修正を見ていないことがわかりました。

あなたがこのエラーを見て、修正方法を考えた場合は、ここでそれを共有してください。 その他の情報が必要な場合は教えてください。残念ながら、私は使用したScalaコードのソースを持っていません。ちょうどその瓶です。 DemoApp.javaのコードが必要な場合は、ここに貼り付けることができますが、それはあまり役に立ちません。単にScalaコードのオブジェクトを参照するだけです。

詳細:Scalaの-2.8.0.r22602-b20100720020114

感謝。

+0

Scala 2.8.xで動作させるには、これが必要です。 – Jus12

答えて

0

私は最終的に解決策を見つけた!このSO question

問題へ

おかげでScalaの2.8コンパイラ(apparantly)のようです。この問題は2.9にはありません。 提案されている修正の1つはuse Scala 2.9ですが、これは必ずしも可能ではありません。ここに正しい解決策があります。

問題はList型のScalaにあります。私は、ScalaコードのListをどこかに戻していたことがわかりました。これはEclpiseのJavaで問題を引き起こしていました。

問題を解決するには、Listを返さないでください。 またはJavaの種類を返します。

2

Scalaの問題の1つは、異なるバージョン間でのバイナリ互換性の欠如です。 オリジナルのJarがコンパイルされたものと同じライブラリバージョンを使用するか、Jarを再コンパイルします(オプションの場合)。

0

JDT製織を有効にしていますか? Preferences - > JDT Weavingを見てください。これが無効になっていると、IDEに説明できないエラーが発生することがあります。

+0

私はJDT製織を有効にしました。だからこそそうではなかった。私は問題はScalaの 'List'型が返され、Javaコードで使われていると思います。 'List'を' Array'に変更したときに問題は消えました。これはJava配列と同じです。 – Jus12

関連する問題