Я работаю над приложением, в котором размещены пользовательские хранимые процедуры, которые предоставляются в виде файлов классов Java.Процедуры должны быть детерминированными, и я хочу внести в черный список различные пакеты и методы, которые являются источниками недетерминизма.Я посмотрел на то, что доступно в java.lang.Class и javax.tools. *.
Похоже, что я могу проверять члены, параметры метода и типы возврата, используя java.lang.Class.Однако, чтобы проверить содержимое метода, похоже, мне нужно было бы проанализировать необработанный файл класса.
Существуют также угловые случаи, такие как статические блоки инициализации и инициализация переменных-членов, которые мне нужно проверять.В некоторых случаях, например в java.util.Date, конструктор по умолчанию недетерминирован, но в других случаях все в порядке.
Существует ли инфраструктура или инструмент, упрощающий анализ этих аспектов файла класса?