【发布时间】:2012-11-28 03:37:51
【问题描述】:
我正在编写一个注释处理器,我需要实例化一个正在处理的类。
我正在根据类及其注释提取一些文档,我想从该类运行一个方法并将结果输出到生成的文档中。
不幸的是,当我尝试实例化它时,我有一个ClassNotFoundException,这对我来说似乎是合乎逻辑的,因为处理发生在编译轮之前。
我目前正在编写一个包含文档的 xml 文件,也许有注释后处理器或类似的东西?
您有任何解决方法的想法吗?
【问题讨论】:
-
您能否更具体地说明为什么您要实例化它?您将永远无法实例化您正在编译的类,所以也许一个更好的问题是,“我怎样才能在不实例化这些类的情况下执行 X?”
-
我想生成一个可以被注解服务生成的json消息的例子
-
好吧,您可以访问注释处理器(源元数据)中的字段及其类型。您不必在示例 JSON 中具有显式值,因为它是一个很好的示例,所以也许您可以使用该信息生成一个 JSON 字符串?另一种选择可能是使用 BCEL 从源元数据动态创建一个类,以用作生成 JSON 的临时占位符。自从我在注释处理器上工作已经有一段时间了,所以我不能提供太多的代码,抱歉。
标签: java annotations code-generation annotation-processing