首页 > 解决方案 > 在 kotlin 中构建后的零值

问题描述

在我的课堂上扩展 ConstraintLayout。我在类中定义了 val 类型的变量。在调试模式下运行程序后,我看到所有变量都为零。为什么会发生这种情况?

在此处输入图像描述

标签: androidkotlin

解决方案


当您使用初始化程序定义变量时,Kotlin 编译器将生成一个构造函数,该构造函数将按顺序执行所有初始化程序。在执行初始化程序之前,相应字段的值将为 0,这就是屏幕截图中显示的状态。

对于诸如 等IMEOPTIONS_ACTION_DONE看起来是常量的值,您不应该使用常规的类属性。相反,您应该将它们放入companion object文件的顶层或顶层。


推荐阅读