Java源代码生成:Eclipse JDT AST vs CodeModel

时间:2013-06-16 19:55:37

标签: java eclipse-plugin code-generation eclipse-jdt sun-codemodel

我正在编写一个eclipse插件,它允许用户使用拖放式UI编写java代码。我遇到过这两个java源代码生成库。 Eclipse JDT AST和代码模型。

我想了解两个库的优缺点。根据我所阅读和理解的内容:

  1. AST非常强大。看看我看过的代码示例和ASTView插件,我完全相信我们可以使用这个库编写任何java构造。我在代码模型上找不到大量文档或样本的地方。所以,我对它的力量不是很清楚。我想知道CodeModel是否和AST一样强大。

  2. CodeModel所需的代码量远小于AST,以实现相同的功能。

  3. 使用AST,我绝对可以重写现有的java类。在CodeModel

  4. 的情况下,我找不到类似的东西

    我确实需要1和3中的功能。拥有2也是一个额外的优势。我想知道codeModel是否有1和3。 请让我知道这两个库的所有优点和缺点。 另外,让我知道是否有比这两者更好的库。

    注意:我正在寻找源代码生成/操作而不是字节代码操作。

    提前致谢。

2 个答案:

答案 0 :(得分:3)

我在我的eclipse插件中使用了Eclipse JDT AST,原因如下:

  1. CodeModel没有AST那么强大。 CodeModel没有很多现有的java构造,其中AST不断升级并且它目前支持jdk 1.7
  2. CodeModel没有解析器。它无法读取现有的java文件并编辑现有代码。
  3. AST有很好的文档,而CodeModel很少或没有文档。

答案 1 :(得分:1)

我对CodeModel一无所知,所以我不能说它是不是一个好项目。但是,由于您正在创建一个eclipse插件,我建议您使用JDT。原因主要是为了与其他Eclipse组件兼容。 JDT AST API与其他Eclipse API(资源API,Java模型API,重构API,文本操作API和编辑器API)一起开箱即用,仅举几例。 JDT远非简单,但它非常强大,非常适合Eclipse模型。