Новое предложение временно разрешило бы незаконный отражающий доступ из кода по пути к классу по умолчанию, поэтому более старый код будет функционировать в Java 9.
Легче перенести код на запланированный выпуск Java 9, выход которого ожидается в конце июля, если комитет, который управляет Java, одобрит предложение, только что сделанное Oracle для лучшего размещения модульности, ключевой новой функции в Java 9. Oracle сделал предложение после Получить сильное противодействие его планам модуляции от сообщества Java
В предложении, размещенном в четверг, Марк Рейнхольд, главный Java-архитектор Oracle, заявил, что сильная инкапсуляция внутренних API-интерфейсов JDK вызвала опасения, что код, который работает на JDK 8, не будет работать на JDK 9 и что в JDK 8 этого предупреждения не было сделано заранее «Чтобы помочь всей экосистеме перейти на модульную платформу Java в более спокойном темпе, я тем самым предлагаю разрешить незаконный отражающий доступ из кода по пути к классам по умолчанию в JDK 9 и запретить его в будущем выпуске», — сказал он.
Согласно предложению, существующий «большой выключатель kill» в опции —permit-illegal-access станет стандартным поведением системы исполнения JDK 9, хотя и без такого количества предупреждений, сказал Рейнхолд. «Текущее поведение JDK 9, в котором недопустимые операции рефлексивного доступа из кода на пути к классу не разрешены, станет по умолчанию в будущей версии. Во время компиляции ничего не изменится ».
Реинхолд заметил: «Магически не решить каждую проблему внедрения JDK 9». Конкретные типы встроенных загрузчиков классов по-прежнему различны, rt.jar все еще нет, макет системного образа не тот, и Строка версии все еще имеет новый формат.