Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java程序中生成有效的java代码?_Java_Templates_Export_Abstract Syntax Tree - Fatal编程技术网

如何在java程序中生成有效的java代码?

如何在java程序中生成有效的java代码?,java,templates,export,abstract-syntax-tree,Java,Templates,Export,Abstract Syntax Tree,在我的应用程序中,我想生成一个java源文件。其目的是对需要在源代码级别上与java兼容的问题域进行遗传编程试验 示例:我有一个内存中的数据结构,它代表了可能长期运行的遗传算法对问题的最新一代解决方案。我在对象上运行.toJavaSource()以获取文本,然后将其保存到文件中,并通过javac对其进行测试。从测试中计算出的分数将反馈到遗传算法中,供下一次迭代使用 我能想到的最简单的方法是制作一个或使用一个模板引擎,比如or,但这并不能保证生成的代码的有效性,因为这些方法都不知道什么是有效的ja

在我的应用程序中,我想生成一个java源文件。其目的是对需要在源代码级别上与java兼容的问题域进行遗传编程试验

示例:我有一个内存中的数据结构,它代表了可能长期运行的遗传算法对问题的最新一代解决方案。我在对象上运行.toJavaSource()以获取文本,然后将其保存到文件中,并通过javac对其进行测试。从测试中计算出的分数将反馈到遗传算法中,供下一次迭代使用

我能想到的最简单的方法是制作一个或使用一个模板引擎,比如or,但这并不能保证生成的代码的有效性,因为这些方法都不知道什么是有效的java语法


是否存在一些现有的库,允许我以抽象语法树或类似DOM模型的形式来处理java代码,支持保存与Oracle Javac?

兼容的语法有效的源文本,而可以考虑基于Groovy的方法。我不确定在任何情况下我将如何进行这项工作,但Groovy使在编译期间直接与AST交互变得“容易”,并且以附加到树的节点的形式生成新代码与代码生成一样简单。