0

我正在开发一个模块,我必须将一组逻辑表示和其他数据转换为 Java 源代码。

我希望能够首先将它们转换为 Java 元素(类、方法等)的中间表示,然后将此中间表示转换为实际的字符串/文本文件。

例如,我希望能够构造这样的元素:

JavaClass myClass = new JavaClass("MyClass", "MyParent", new String[] {"MyInterface", "MySecondInterface"});

然后让 myClass 的 toString() 方法输出类似:

class MyClass extends MyParent implements MyInterface, MySecondInterface { }

等等变量,方法,语句等 - 最好是格式化。只是为了演示,这个例子被过度简化了——实际上我更喜欢至少类似于抽象语法树的表示。

我查看了 com.sun.org.apache.bcel.* 包,但由于它是用于字节码的,因此在这里没有多大帮助。转换框架(例如 Recoder)似乎也不是我想要的。

谁能推荐一个我可以使用的框架?

4

2 回答 2

1

您应该查看Javassist。它有一个非常简单的 API 用于动态创建类。

于 2013-02-10T03:46:03.063 回答
1

您可以使用freemarker 之类的模板引擎。编写一个“类”模板并使用 freemarker 放入您的数据。使用起来真的很简单。Freemarker 支持您需要的一切,例如交互、条件、...

于 2013-02-10T07:51:14.663 回答