Android,Butterknife,BindView,Final

时间:2016-12-09 15:05:05

标签: java android butterknife

这可能是一个简单的答案,但是尝试使用Butterknife,将一些findViewById转换为@BindViews,并注意到我无法在视图中使用BindView需要声明为final,因为Java引发了一个错误,即' Variable' x'可能尚未初始化'。

显然,我不需要使用BindView,但只是好奇这个以了解更多关于java的信息。我读了一下最终宣言的含义,但无法将其与Butterknife联系起来。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

与奶油刀无关。如果要初始化声明为final的member,可以在声明时或构造函数中执行此操作。在findViewByIdButterknife的情况下,这两个选项不在桌面上。在这两种情况下,您都使用需要有效findViewById对象的context,并且可以在setContentView之后成功使用,并且在初始化final时永远不会满足这两个条件成员。请注意,ButterKnife使用代码生成并在场景后面仍然像往常一样使用findViewById