Использование кода Scala в Eclipse Ide. Внутренняя ошибка компилятора - PullRequest
0 голосов
/ 06 июня 2011

В Netbeans я использовал некоторый scala-код (jar), написанный кем-то другим, и включил его в проект проекта java вместе с Scala-library.jar. Работало без сбоев.

Теперь, когда я пытаюсь сделать то же самое с помощью eclipse, я получаю следующую ошибку сборки

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

На Google, я обнаружил, что у других была эта проблема, но не видел никаких исправлений.

Если кто-то из вас видел эту ошибку и подумал, как ее исправить, поделитесь ею здесь. Дайте мне знать, нужна ли какая-либо другая информация. К сожалению, у меня нет исходного кода Scala, который я использовал, только баночка. Если вам нужен код DemoApp.java, я могу вставить его сюда, но это не очень полезно: он просто ссылается на объект в коде Scala.

Подробности: scala-2.8.0.r22602-b20100720020114

Спасибо.

Ответы [ 3 ]

2 голосов
/ 06 июня 2011

Одной из проблем Scala является отсутствие бинарной совместимости между различными версиями.Либо используйте ту же версию библиотеки, с которой был скомпилирован исходный Jar, либо перекомпилируйте Jar (если это вариант).

0 голосов
/ 03 июля 2011

Хорошо. Я наконец нашел решение!

Благодаря этому ТАКому вопросу

Проблема, похоже, в компиляторе Scala 2.8 (очевидно). Эта проблема не существует в 2.9. Одним из предложенных исправлений было использование Scala 2.9 , но это не всегда возможно. Так что вот правильное решение.

Проблема заключается в типе List Scala. Я обнаружил, что где-то возвращаю (выставляю) List в коде Scala, что вызывает проблему с Java в Eclpise.

Чтобы устранить проблему, не возвращайте List. Вернуть Array или какой-либо тип Java.

0 голосов
/ 03 июля 2011

У вас включено JDT Weaving?Перейдите в «Настройки» -> «JDT Weaving», чтобы узнать.Если он отключен, в вашей среде IDE могут возникнуть необъяснимые ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...