在 Kotlin/Android 活动/片段中定义全局变量的最佳方法是什么?
当您应该使用这 2 种方法来定义全局变量时,有哪些不同的场景:
var viewpager: CustomViewPager? = null
Run Code Online (Sandbox Code Playgroud)
或者
lateinit var viewpager: CustomViewPager
Run Code Online (Sandbox Code Playgroud)
?
如果我使用前者,我将不必在我的代码中检查 null。例如,如果我用于lateinit以下内容:
viewpager = activity?.findViewById<CustomViewPager>(R.id.viewpager) 那么我将不得不检查空值。
a_l*_*ody 12
using lateinit,您是说您绝对会确保在某处创建该变量的实例(否则,如果 alateinit尚未初始化,您的应用程序将抛出异常),然后该变量在您的其余部分也不会为空project 与 using 相比null,这意味着该对象可能在项目其余部分的代码中的某处为空,并且您将不得不在整个过程中处理可空性。
如果您确定不会将变量设为 null 并且始终需要它的实例,请使用 lateinit
问自己这个问题:
我是否 100% 确定我将在此类中的某处使用此变量的实例?
如果答案是Yes,您可能应该使用lateinit, 因为lateinit强制您创建它的实例。
如果答案是No,则您可能应该改用可空字段。
取自这里:https : //www.kotlindevelopment.com/lateinit-kotlin/
lateinit 关键字代表后期初始化。当构造函数中不能提供非空初始化器时,lateinit 非常方便,但开发人员确定访问它时变量不会为空,从而避免以后引用它时进行空检查。
| 归档时间: |
|
| 查看次数: |
5716 次 |
| 最近记录: |