Получить путь к файлу из TypeElement - PullRequest
2 голосов
/ 08 апреля 2020

Я пишу процессор аннотаций, который генерирует файл JSON, содержащий некоторые данные, считанные из аннотаций (легко) и путь к файлу, где эти аннотации используются.

Проблема : Я не могу понять, как получить файл, соответствующий TypeElement (который является аннотированным элементом).

Я обнаружил, что TreePath API должен сделать это:

val instance = Trees.instance(processingEnv)
instance.getPath(element)

, но кажется, что com.sun.source.util.Trees недоступен в используемой нами версии jdk (AdoptOpenJDK OpenJDK Runtime Environment 1.8.0_242-b08)

Я также пытался с

val compiler: JavaCompiler = ToolProvider.getSystemJavaCompiler()
val fm = compiler.getStandardFileManager(null, null, null)
val locations = fm.getJavaFileObjects(element.toString())
println(locations.first().toUri())

, но он не дает мне действительный путь к файлу.

Любая другая подсказка?

...