This question already has answers here:
Why doesn't Kotlin allow to use lateinit with primitive types?

(3 个回答)


1年前关闭。




我希望稍后初始化私有(private)一个 var id,所以我使用代码 private lateinit var id:Int
但是我收到错误“lateinit”修饰符不允许用于原始类型的属性,为什么?我该如何解决?谢谢!

代码 A
class UIAddEditBackup: AppCompatActivity() {
    private lateinit var mContext: Context //OK
    private var isAdd: Boolean=false //OK
    private lateinit var id:Int   // I get the error

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.layout_add_edit_backup)
        id=5
    }
}

最佳答案


对于原始类型,您可以删除 lateinit 修饰符并用零初始化(或 bool 值为 false)

关于android - 为什么我不能在 Kotlin 中为 int var 设置 lateinit?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49594089/

10-10 14:25