【问题标题】:Java source code generation: Eclipse JDT AST vs CodeModelJava 源代码生成:Eclipse JDT AST 与 CodeModel
【发布时间】:2013-06-16 19:55:36
【问题描述】:

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

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

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

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

  3. 有了 AST,我绝对可以重写现有的 java 类。在 CodeModel 的情况下我找不到类似的东西

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

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

提前致谢。

【问题讨论】:

  • 有一个项目使用 CodeModel 并且可以生成整个类。浏览它可能会对您有所帮助,请参阅here

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


【解决方案1】:

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

  1. CodeModel 不如 AST 强大。 CodeModel 没有很多现有的 AST 不断升级的 java 结构,它目前支持 jdk 1.7
  2. CodeModel 没有解析器。它无法读取现有的 java 文件和编辑现有的代码。
  3. AST 有很好的文档,而 CodeModel 几乎没有文档。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多