这可能是一个简单的答案,但是尝试使用Butterknife,将一些findViewById转换为@BindViews,并注意到我无法在视图中使用BindView需要声明为final,因为Java引发了一个错误,即' Variable' x'可能尚未初始化'。
显然,我不需要使用BindView,但只是好奇这个以了解更多关于java的信息。我读了一下最终宣言的含义,但无法将其与Butterknife联系起来。谢谢你的帮助。
答案 0 :(得分:1)
与奶油刀无关。如果要初始化声明为final的member
,可以在声明时或构造函数中执行此操作。在findViewById
和Butterknife
的情况下,这两个选项不在桌面上。在这两种情况下,您都使用需要有效findViewById
对象的context
,并且可以在setContentView
之后成功使用,并且在初始化final
时永远不会满足这两个条件成员。请注意,ButterKnife
使用代码生成并在场景后面仍然像往常一样使用findViewById