Генерируемые компилятором методы – в чём смысл?

92
29 ноября 2021, 13:40

Например, методы генерируемые компилятором – values() и valueOf(String name) для перечислений (в классе Enum их нет): почему бы просто не объявить их как и другие, в классе Enum?
И где находится документация по таким методам?

Answer 1

1) Сначала была генерация дефолтного конструктора

2) Потом было решено добавить методы в Enum

3) Далее пришло понимание, что приходится автогенерить методы доступа для inner class, иначе внутренний класс будет недоступен

4) Потом решили что пора навести здесь порядок и ввели аннотации, где процессор аннотаций будет генерить методы во время компиляции, возникает хотя бы подобие управляемости генерацией методов во время компиляции

5) Потом пришел Kotlin, который возвел автогенерацию методов во время компиляции вообще в принцип.

6) ...

Answer 2

Потому что класс Enum ничего не знает ни об именах ваших перечислений ни об их значениях. Можно было бы вытащить их через рефлексию, но это долго. Проще и быстрее сгенерировать эти методы при компиляции

READ ALSO
Вывод многострочного текста

Вывод многострочного текста

Как быстро выводить многострочный текст?

99
Нужна помощь с вёрсткой кнопки

Нужна помощь с вёрсткой кнопки

Как лучше всего сверстать кнопку "WORK WITH US!"? У меня что-то не получается

104
Динамический размер input/textarea

Динамический размер input/textarea

такой вопрос, как сделать, чтобы при вводе или выводе текста при помощи input или чего-либо еще:

84
Не видно текст внутри элемента

Не видно текст внутри элемента

Использую CropperJsСтоит задача - отобразить размеры вырезаемой области

167