Внутренняя ошибка компилятора ArrayIndexOutOfBoundsException: -1 ... generateUnboxingConversion - PullRequest
2 голосов
/ 17 декабря 2009

Я получил странное исключение при попытке скомпилировать это:

  Byte b = 2;
  if (b < new Integer(5)) {
     ...
  }

Это действительная проверка (unboxing-implicit cast - unboxing)?

Ответы [ 5 ]

3 голосов
/ 17 декабря 2009

Если в вашем компиляторе есть ошибка, вот что вы делаете:

  • Убедитесь, что вы используете последнюю версию версия компилятора.
  • Если у поставщика есть открытая база данных ошибок, проверьте это (подсказка: используйте фактический текст, скопированный и вставленный из трассировки исключений).
  • Если это известная ошибка, проголосуйте за нее, поднимите эскалацию, что угодно.
  • Если вы не можете найти копию ошибки, отправьте отчет об ошибке с кратким, компилируемым (или нет!) Тестовым примером.

В общем случае бесполезно публиковать сообщения о случайных ошибках в программных продуктах на сайтах вопросов и ответов.

1 голос
/ 17 декабря 2009

Если вы получаете внутреннюю ошибку компилятора (ICE), это ошибка в самом компиляторе Java, не обязательно что-то не так с вашим кодом.

Ваш фрагмент кода прекрасно компилируется в недавнем OpenJDK. Какой компилятор Java вы используете?

1 голос
/ 17 декабря 2009
public class test
{
public static void main( String[] args )
{
Byte b = 2;
if( b < new Integer(5) )
{
System.out.println( "Working." );
}
}
}

У меня работает. (Java 1.6.0_17).

0 голосов
/ 26 марта 2016

У меня тоже была эта ошибка, но никто (1.6 и 1.8) javac не получил права. Было более двух библиотек (* .jar-файлов), то есть разные версии дублированных библиотек. Удаление дубликатов исправлено, ошибка comlie

0 голосов
/ 17 декабря 2009

Используется моя версия компилятора: 1.6.0_16-b01 для 6.0 совместимой Похоже, что проблема исчезнет, ​​если я переключусь на код, совместимый с 5.0.

...