我正在编写一个在javac中运行的注释处理器。
它扫描带注释的类并生成包含类名的资源文件。
这些名称将在运行时使用,以便Class<?>
感谢Class.forName(String)
。
如何从javax.lang.model.element.TypeElement
获取课程名称(例如pgk1.pkg2.Foo $ Bar)。
提示:我既不需要简单名称(例如Bar),也不需要限定名称(例如pgk1.pkg2.Foo.Bar)。
答案 0 :(得分:7)
注释处理器由编译器初始化并接收ProcessingEnvironment
实例。
方法Name ProcessingEnvironment.getElementUtils().getBinaryName(TypeElement)
返回一个二进制名称,可用于稍后实例化该类。