【发布时间】:2014-02-13 09:42:31
【问题描述】:
问题已经在标题中,它是question I asked earlier 的不太具体的版本:
如何在java中编写一个注解,为类添加默认构造函数?
【问题讨论】:
-
见APT
标签: java annotations
问题已经在标题中,它是question I asked earlier 的不太具体的版本:
如何在java中编写一个注解,为类添加默认构造函数?
【问题讨论】:
标签: java annotations
有一个项目已经这样做了:http://projectlombok.org/
从技术上讲,您需要挂钩到 Java 编译器。编译 Java 代码是分阶段完成的:首先,收集所有源代码。然后解析器创建一个 AST。然后代码生成阶段将 AST 转换为字节码。
注释处理器在 AST 构建之后但在生成字节码之前运行。通过修改 AST,可以修改生成的类文件。
此博文包含详细信息:http://notatube.blogspot.com/2010/11/project-lombok-trick-explained.html
据我了解 Lombok,它包含编写由自定义注释触发的附加 AST 转换器的所有工具。
【讨论】:
这通常不受支持,AFAIK。
Project Lombok 做了类似的事情,但它使用了一些 AFAIK 的 hack。
https://blogs.oracle.com/darcy/entry/properties_via_annotation_processing
【讨论】: