Прежде чем кто-то кричит о EOL'е JDK, я хотел бы отметить, что мой вопрос , а не о том, как скомпилировать следующее.Здесь есть реальный вопрос, и дело не в том, что JDK 1.5 - EOL'ed ...
Следующее в 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 позволяет компилировать.
Изменение троичного "назначения"на , если / else разрешает компиляцию.
Использование JDK 1.6 позволяет компиляцию.
Поэтому мне было интересно: есть ли что-то недопустимое в приведенном выше коде под Java 1.5 иэто разрешено в Java 1.6?
Вылетает ли это для тех из вас, кто работает под Java 1.5 тоже?
Авария говорит что-то вроде этого:
Anисключение произошло в компиляторе (1.5.0_22).Пожалуйста, отправьте сообщение об ошибке в Java Developer Connection (http://java.sun.com/webapps/bugreport) после проверки парада ошибок на наличие дубликатов. Включите вашу программу и следующую диагностику в ваш отчет. Спасибо.
Я понимаю, что заполняю ошибкуОтчет по EOL'у JDK - бесполезное занятие, но я все же хотел бы знать, является ли приведенный выше код верным Java 1.5 или нет.