最新文章

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

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

LST 是 OpenRewrite 的核心,是 OpenRewrite 实现精准、可控代码修改的关键支柱。本文将介绍如何使用 JavaTemplate 创建复杂的 LST。 背景 在操作代码的过程中,可能需要添加、修改、删除代码片段。比如添加一个变量声明、添加一个方法、修改一个方法体等。这些操作都需要创建 LST(Lossless Semantic Tree)。那如何创建一个变量声明的 LST? 我们需要创建变量声明 J.VariableDeclarations 以及变量 J.VariableDeclarations.NamedVariable,并将其添加到方法体中。看起来很简单,但是在使用构造器初始化对象时需要提供很多参数。何况很多参数自身的初始化也是一个复杂的过程,需要保证类型的属性匹配准确。 实际上不需要这么麻烦,也是 官方不推荐的方式。OpenRewrite 提供了 JavaTemplate 来简化这个过程。 JavaTemplate javaTemplate = JavaTemplate.builder("List<String> list = new ArrayList<>();") .build(); 上面的代码片段中,通过 JavaTemplate 构建了一个变量声名赋值的 LST。使用 JavaTemplate 可以生成格式准确、类型属性完整的 LST,而不需要手动构造。

再见,解惑的 2024

再见,解惑的 2024

新年的钟声刚刚结束,站在 2025 年的第一天回望,2024 这一年,宛如一场盛大而深刻的旅程,为我解答了许多的人生谜题。如今,是时候一直挥手告别,迎接新的开始。 子曰:吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十 …

About Me

张晓辉

英文名 Addo。 资深程序员,LF APAC 开源布道师,CNCF Ambassador,云原生社区管委会成员,公众号“云原生指北”作者,微软 Azure MVP。 曾任职于汇丰软件、唯品会、数人云、小鹏汽车,有多年的微服务和基础架构实践经验,主要工作涉及微服务、容 …

进一步了解