Найти в Дзене

✅ Гибкие конструкторы

JDK 25 привнесёт ещё одно небольшое, но важное, на мой взгляд, изменение в язык программирования Java - гибкие конструкторы (JEP 513). Цель изменения - позволить выполнять действия в конструкторе класса-наследника до вызова конструктора родительского класса. Представим себе достаточно банальную ситуацию: нам нужно создать экземпляр некоторого класса-наследника, но в процессе создания нужно провалидировать переданные в аргументах данные. До Java 25 сделать это можно только после вызова конструктора родительского класса: Проблема такого кода заключается в том, что в конструкторе родительского класса может находиться какая-то ресурсоёмкая логика, которая будет выполнена зря. Да, валидацию можно вынести в дополнительные методы класса, но выглядеть это будет не всегда красиво и удобно: Это будет так, даже если попытаться шаблонизировать код: С Java 25 необходимые манипуляции с аргументами можно выполнять до вызова конструктора родительского класса: На мой взгляд, выглядит красивее и проще.
JDK 25
JDK 25

JDK 25 привнесёт ещё одно небольшое, но важное, на мой взгляд, изменение в язык программирования Java - гибкие конструкторы (JEP 513). Цель изменения - позволить выполнять действия в конструкторе класса-наследника до вызова конструктора родительского класса.

Представим себе достаточно банальную ситуацию: нам нужно создать экземпляр некоторого класса-наследника, но в процессе создания нужно провалидировать переданные в аргументах данные. До Java 25 сделать это можно только после вызова конструктора родительского класса:

-2

Проблема такого кода заключается в том, что в конструкторе родительского класса может находиться какая-то ресурсоёмкая логика, которая будет выполнена зря. Да, валидацию можно вынести в дополнительные методы класса, но выглядеть это будет не всегда красиво и удобно:

-3

Это будет так, даже если попытаться шаблонизировать код:

-4

С Java 25 необходимые манипуляции с аргументами можно выполнять до вызова конструктора родительского класса:

-5

На мой взгляд, выглядит красивее и проще. Но не стоит забывать о том, что до вызова конструктора класса-родителя нельзя обращаться к this, методам и инициализированным свойствам текущего экземпляра. Как вам нововведение?

vk.ru/@shurik.codes-gibkie-konstruktory