如何获取 class 在 Java 注释处理器中应用的注释?

How to get class that annotation applied to in Java Annotation Processor?

我编写了一个自定义 Java 注释处理器,如果将其应用于 class,则会生成一个 class,其名称为带注释的 class 字段。

执行时,我可以用 (DeclaredType)annotatedElement.asType() 找到带注释的 class(如 "com.package.Person")的名称,但无法通过 Class<com.package.Person> 找到其字段。

我试图用 Class.forName(com.package.Person) 的全名加载 class,但抛出异常 ClassNotFoundException: com.package.Person

如何获得Class<Person>

可能是名字错了?

这是代码。并且有效。

Class<?> testClass = Class.forName("PackageName.ClassName");
Object instance = testClass.newInstance();

com.package.Person -> package.Person。如果不工作,我很累。对不起。

最后,我发现我无法获取 Class<?> 但我可以通过 var elements = element.getEnclosedElements() 获取字段,它们的种类是 FIELD

也可以通过 ((TypeElement) rootElement).getSuperclass()

获得超类