Ошибка компилятора JDKJAVA

Программисты JAVA общаются здесь
Anonymous
Ошибка компилятора JDK

Сообщение Anonymous »

Прежде чем кто-нибудь начнет кричать о JDK с EOL, я хотел бы отметить, что мой вопрос не о том, как скомпилировать следующее. Здесь возникает реальный вопрос, и речь идет не о том, что JDK 1.5 будет EOL...

Следующее в JDK 1.5, вплоть до 1.5.0_22 (последнее, что я смог найти) выдает в моей системе ошибку компилятора:

Код: Выделить всё

private Object[] boozinga() {
boolean b = Math.abs(42) > 0;
Object[] res = new Object[1];
res[0] = b ? new int[1] : new String[1];
return res;
}
Изменение Math.abs(42) > 0 на true разрешает компиляцию.

Изменение троичного «присвоения» на if/else разрешает компиляцию.

Использование JDK 1.6 позволяет компилировать .

Поэтому мне было интересно: есть ли что-то незаконное в приведенном выше коде в Java 1.5 и разрешено в Java 1.6?
Происходит ли сбой у тех из вас, кто использует Java 1.5?

Сбой говорит примерно так:


В компиляторе
(1.5.0_22) произошло исключение. Пожалуйста, сообщите об ошибке
на сайте Java Developer Connection
(http://java.sun.com/webapps/bugreport)
после проверки Bug Parade на наличие
дубликатов. Включите свою программу и
следующую диагностику в свой
отчет. Спасибо.


Я считаю, что заполнение отчета об ошибках для JDK с EOL — бесполезное занятие, но все же я бы все еще хотелось бы знать, является ли приведенное выше действительным кодом Java 1.5 или нет.

Подробнее здесь: https://stackoverflow.com/questions/620 ... iler-error

Вернуться в «JAVA»