【发布时间】:2026-01-24 16:55:01
【问题描述】:
我对构建自定义注释处理器很陌生,
我也在这里关注了一些关于 SO 的教程和指南,但一直坚持为带注释的方法添加条件。
问题:
我有一个仅针对方法的自定义注释,
比如说,@RUN(isDebug: Boolean) & 方法是:
@RUN(isDebug = true)
private fun runInDebugOnly() {
....
}
@RUN(isDebug = false)
private fun runInReleaseOnly() {
....
}
所以在我的注释处理器中,
是否可以有条件地执行这些功能?
我知道在其中生成自定义类和方法的概念,
但是如何准确拦截方法并使用生成的方法。
任何指导将不胜感激。
【问题讨论】:
-
我认为用 kapt 实现这一点是不可能的。看看更强大的compiler plugins。 Here 是关于该主题的不错的系列文章。
-
我认为这可以通过围绕建议的 aspectj 来实现,从而根据赋予注释的值阻止函数的执行。 github.com/Archinamon/android-gradle-aspectj
标签: android kotlin annotations annotation-processing kapt