kotlin中的关键字 lateinit

lateinit:延迟初始化

在kotlin里面,如果在类型声明之后没有使用符号?,则表示该变量不会为null。但是这个时候会要求我们初始化一个值。有些时候,我们在声明变量的时候,并不能初始化这个变量。

一个声明成lateinit的变量,如果在整个代码里面都没有进行任何的初始化,那么能否编译通过?如果你加上了lateinit关键字,kotlin的编译器不会做这种检查。

1. lateinit 延迟加载

2.lateinit 只能修饰, 非kotlin基本类型

3如果你的代码真的显示初始化了lateinit变量,而又抛出了UninitializedPropertyAccessException异常, 因为你恰好将变量初始化为null了

因为Kotlin会使用null来对每一个用lateinit修饰的属性做初始化,而基础类型是没有null类型,所以无法使用lateinit。

原文地址
相关文档

你可能感兴趣的:(kotlin中的关键字 lateinit)