当前位置: 首页 > 知识库问答 >
问题:

Android,Butternife,BindView,Final

闻人哲茂
2023-03-14

对此可能有一个简单的答案,但试图充分使用Butternife,将一些FindViewByID转换为@BindViews,并注意到我不能对需要声明为final的视图使用BindView,因为Java引发了“变量'x'可能没有初始化”的错误。

显然,我不需要使用BindView,而只是对这一个感到好奇,以了解更多关于Java的知识。我读了一点关于最终宣言的意思,但不能把它和巴特尼刀联系起来。谢谢你的帮助。

共有1个答案

曹茂材
2023-03-14

它与白切刀无关。如果要初始化声明为final的成员,可以在声明时进行,也可以在构造函数中进行。对于findviewbyidbutternife,这两个选项都不在表中。在这两种情况下,您都使用FindViewByID,它需要一个有效的Context对象,并且可以在SetContentView之后成功使用,而在初始化Final成员时,这两个条件都不满足。请注意,Butternife使用代码生成,而在幕后,它仍然像通常那样使用FindViewByID

 类似资料: