【发布时间】:2010-09-12 09:19:20
【问题描述】:
我正在寻找一个框架来生成 Java 源文件。
类似于以下 API:
X clazz = Something.createClass("package name", "class name");
clazz.addSuperInterface("interface name");
clazz.addMethod("method name", returnType, argumentTypes, ...);
File targetDir = ...;
clazz.generate(targetDir);
然后,应该在目标目录的子目录中找到一个java源文件。
有人知道这样的框架吗?
编辑:
- 我真的需要源文件。
- 我也想填写方法的代码。
- 我正在寻找高级抽象,而不是直接的字节码操作/生成。
- 我还需要对象树中的“类结构”。
- 问题域很笼统:生成大量非常不同的类,没有“共同结构”。
解决方案
根据您的回答,我发布了 2 个答案...with CodeModel 和 with Eclipse JDT。
我在我的解决方案中使用了CodeModel,:-)
【问题讨论】:
-
你的问题很笼统,你的问题域真的这么笼统吗?您能否更具体地了解您的问题域?例如,我编写了代码生成工具来为特定问题生成代码,例如消除重复的异常类代码,或消除枚举中的重复。
-
@Vlookward:您可以将放在问题中的答案作为下面的 2 个单独答案移动。然后为每个问题添加一个链接。
-
@Banengusk:感谢您的提问,为我节省了数小时搜索互联网最黑暗部分的时间。 @skaffman:很棒的发现 - 你让另一位开发人员更轻松地完成了他即将完成的任务 :)
-
这个 SO 答案解决了 C++ 而不是 Java 的问题,但答案也适用于 Java。 stackoverflow.com/a/28103779/120163
标签: java eclipse code-generation