为什么使用 KSP

Last modified: 2025/05/30

编译器插件是强大的元编程(Metaprogramming)工具, 能够大大增强你编写代码的方式. 编译器插件直接将编译器作为库来调用, 分析并修改输入的程序. 这些插件还能够为各种用途生成输出. 比如, 它们能够生成样板代码(Boilerplate Code), 它们甚至还能对使用了特殊标记的程序元素生成完整的实现, 比如 Parcelable. 插件还有很多很多其他用途, 甚至可以用于实现并精密调节(fine-tune)语言没有直接提供的那些功能特性.

尽管编译器插件很强大, 这种能力也带来了代价. 要编写即使是最简单的插件, 你也需要编译器相关的背景知识, 还需要对你的编译器的实现细节有一定程度的了解. 另一个实际问题是, 插件经常与特定的编译器版本紧密结合, 因此每次你想要支持编译器的新版本时, 你可能都需要更新你的插件.