Следующее в 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;
}
Изменение троичного «присвоения» на 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
Мобильная версия