🫨 Java запрещает менять final? Разбираем JEP 500
Поле объявлено final, но через reflection его всё ещё можно изменить после создания объекта. Старый Java-компромисс, который годами помогал фреймворкам, теперь начинает мешать самой JVM.
В JDK 26 OpenJDK сделал первый шаг к тому, чтобы final действительно означал «неизменяемый»: пока такие мутации получают warning, а в будущем их планируют запрещать по умолчанию.
В новом видео Максим Лебедев, Developer Advocate Axiom JDK, разбирает:
— что меняет JEP 500 Prepare to Make Final Mean Final в JDK 26;
— кого могут затронуть изменения;
— как найти final-field mutation в своём проекте;
— что проверить уже сейчас, чтобы будущие обновления JDK не принесли сюрпризов.
🌐 YouTube | 🌍 VK Видео
А если вам удобнее читать — текстовая версия уже ждет вас на Хабр!
Поле объявлено final, но через reflection его всё ещё можно изменить после создания объекта. Старый Java-компромисс, который годами помогал фреймворкам, теперь начинает мешать самой JVM.
В JDK 26 OpenJDK сделал первый шаг к тому, чтобы final действительно означал «неизменяемый»: пока такие мутации получают warning, а в будущем их планируют запрещать по умолчанию.
В новом видео Максим Лебедев, Developer Advocate Axiom JDK, разбирает:
— что меняет JEP 500 Prepare to Make Final Mean Final в JDK 26;
— кого могут затронуть изменения;
— как найти final-field mutation в своём проекте;
— что проверить уже сейчас, чтобы будущие обновления JDK не принесли сюрпризов.
🌐 YouTube | 🌍 VK Видео
А если вам удобнее читать — текстовая версия уже ждет вас на Хабр!