【发布时间】:2017-11-06 14:31:43
【问题描述】:
我已使用 Android Studio 3.0 将此代码从 Java 转换为 Kotlin
internal var background: Drawable
internal var xMark: Drawable
private fun init() {
background = ColorDrawable(Color.RED)
xMark = ContextCompat.getDrawable(this@Subscriptions_main, R.drawable.delete)
}
在第 1 行和第 2 行出现错误:
属性必须被初始化或者是抽象的
即使它将在 init 函数中初始化。
正在写:
internal var background: Drawable? = null
internal var xMark: Drawable? = null
可行且有效的解决方案?还有其他更好的方法吗?
【问题讨论】:
-
你可以使用
lateinit关键字 -
谢谢这个工作,如果你愿意的话,写一个答案。它对其他用户也很有用
-
太好了,很高兴为您提供帮助;)
-
不要盲目使用lateinit,了解它的作用以及为什么它可能不是你想要的。
-
init()只是一个函数,不能保证在访问属性之前调用它。
标签: android initialization kotlin