JEP draft: Low-level classfile reflection
Низкоуровневая рефлексия class-файлов
| Ответственный | John Rose |
| Тип | Feature |
| Область | JDK |
| Статус | Draft |
| Компонент | hotspot / runtime |
| Создан | 2020/06/24 18:45 |
| Обновлён | 2024/07/10 00:03 |
| Задача | 8248259 |
ЧЕРНОВИК ЧЕРНОВИК ЧЕРНОВИК
Идея в том, чтобы у JDK и JVM был закрытый API для единообразной рефлексии того, что содержится в class-файле (за исключением того, что было отброшено при загрузке). Для этого уже есть механизмы, основанные на API и созданные специально для рефлексии и для раскрытия аннотаций (рефлексия CP), а также (более амбициозный) JVMCI для внешних JIT-компиляторов.
Они плохо масштабируются, и мы не хотим определять похожий API для потоков данных species в то же время, когда дорабатываем сами эти потоки данных. Поэтому пора сделать низкоуровневый рефлектор — нечто вроде реконструктора class-файлов в JVMTI, но менее костыльное и более «живое» (то есть отражающее текущее состояние связывания CP и не претендующее на генерацию целого class-файла).
У меня есть работающий прототип этого. Он пригодится нам для прототипирования потоков данных species (включая чтение любых атрибутов, которые нам понадобится добавить в classifies). Кроме того, я ожидаю, что позднее он станет основой для переноса большей части прежних API в код на Java.