我试图制作一个带整数的注释处理器。如果我使用显式整数,它的工作正常。但是当我使用android数据绑定BR
类的值时:
@SomeAnnotation(BR.someField)
它表示未找到BR
类。
我猜测android数据绑定BR
生成尚未执行,因此错误。在数据绑定过程完成后,有没有办法标记我的注释处理器开始处理?
答案 0 :(得分:0)
问题也是,你真正想要用这个值做什么。如果你在注释处理器中确实需要这个值,那么你可能会运气不好,因为具有字段本身的类只在编译过程中需要它的点之后创建。如果您需要运行时的值,则可能会遇到相同的问题。但是你应该考虑改变你的实现,因为在运行时处理注释是非常昂贵的。
现在到了可能有效的地步。如果需要将值写入使用注释处理器生成的源,则可以将此字段用作字符串值并将其写入新创建的源。您只需要确保也设置正确的导入集。
@SomeAnnotation("BR.someField")
当编译生成的代码时,此字段的行为与将其放入自编函数源中的行为完全相同。只要确保它不会在另一个注释的定义中结束。
final int someField = BR.someField;