OpenRewrite 学习笔记(四):使用 JavaTemplate 创建复杂 LST

OpenRewrite 学习笔记(四):使用 JavaTemplate 创建复杂 LST

💡 原文中文,约4900字,阅读约需12分钟。
📝

内容提要

LST 是 OpenRewrite 的核心,支持精确的代码修改。JavaTemplate 简化了 LST 的创建,能够动态生成代码片段,支持无类型和有类型占位符,便于插入变量和进行类型检查。通过 JavaTemplate 的 apply 方法,可以轻松应用模板进行代码修改和注解添加。

🎯

关键要点

  • LST 是 OpenRewrite 的核心,支持精确的代码修改。
  • JavaTemplate 简化了 LST 的创建,能够动态生成代码片段。
  • JavaTemplate 支持无类型和有类型占位符,便于插入变量和进行类型检查。
  • 使用 JavaTemplate 的 apply 方法,可以轻松应用模板进行代码修改和注解添加。
  • 创建变量声明的 LST 需要使用 J.VariableDeclarations 和 J.VariableDeclarations.NamedVariable。
  • JavaTemplate 通过合法的代码片段创建模板,支持动态参数化。
  • 无类型占位符用于插入上下文中类型不相关的 LST,常用于注释、类名等。
  • 有类型占位符使用带有类型信息的占位符语法,进行类型检查。
  • JavaTemplate 支持上下文相关和上下文无关的模板。
  • JavaParser 默认只能感知 Java 运行时提供的类型,需额外引入外部库类型。
  • 使用 JavaTemplate 时,可以通过 apply 方法将模板加入到当前的 LST 中。
  • LST 提供多个坐标,指示模板的应用方式,支持多种操作。
➡️

继续阅读