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

如何在Java注释处理器中获取应用该注释的类?,java,java-annotations,Java,Java Annotations,我编写了一个自定义Java注释处理器,如果应用于类,它将生成一个带有注释类字段名称的类 执行时,我可以使用(DeclaredType)annotatedElement.asType()找到带注释类的名称(如“com.package.Person”),但无法获取类来查找其字段 我试图用class.forName(com.package.Person)加载全名的类,该类抛出异常ClassNotFoundException:com.package.Person 如何获取类?可能是名称错误 这是代码。而

我编写了一个自定义Java注释处理器,如果应用于类,它将生成一个带有注释类字段名称的类

执行时,我可以使用
(DeclaredType)annotatedElement.asType()找到带注释类的名称(如“com.package.Person”),但无法获取
类来查找其字段

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

如何获取

可能是名称错误

这是代码。而且它起作用了

Class<?> testClass = Class.forName("PackageName.ClassName");
Object instance = testClass.newInstance();
Class testClass=Class.forName(“PackageName.ClassName”);
对象实例=testClass.newInstance();

com.package.Person->package.Person。如果不工作,我就工作。抱歉。

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


通过
((TypeElement)rootElement)也可以获取超类。getSuperclass()

类不存在(jet)(您正在编译它们)。看看lombok是如何工作的?lombok只使用注释处理器“作为入口”,并劫持AST。有关详细信息,请参阅。这将不起作用。该类不存在,因为您正在编译。我有疑问地写道,
class.forName()
引发异常