Существует ли общая «бэкэнд» библиотека для отражения Java
В настоящее время я работаю со специализированным интерпретируемым языком программирования, реализованным на Java. Как очень небольшая часть языка, я хотел бы добавить возможность совершать вызовы в Java. Прежде чем погрузиться во все тонкости размышлений, мне было интересно, знает ли кто-нибудь об общей библиотеке для выполнения «бэкэнд» части рефлексивного вызова Java-кода.
То есть я анализирую строку (я определяю грамматику) в некоторой структуре данных, которая представляет вызов метода Java (или конструктор, или доступ к полю), а затем передаю эту структуру данных в эту библиотеку, которая вызывает вызов и возвращает результат. В частности, я бы хотел, чтобы он уже обрабатывал все крайние случаи, которые я не хочу выяснять:
Автоматически выбрать правильный метод, основанный на типах аргументов (например, интеллектуальный Class.getDeclaredMethod ())Обработка различий между массивами и нормальными объектными ссылкамитак далееЯ потратил немного времени на изучение реализаций динамических языков в JVM, но они, как правило, намного сложнее, чем я ищу, или сильно оптимизированы для конкретного языка.
Другой вариант - преобразовать мою грамматику в строку на каком-то динамическом языке и вызвать ее с помощью Rhino или чего-то еще, но это немного больше, чем я ищу.
Спасибо!