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