文章目录
一、报错信息
二、问题分析
三、解决方案
该问题的本质就是 , 成员属性 在 init 初始化代码块中进行初始化 , 但是在初始化之前调用了该 成员属性 , 编译时没有报错信息 , 但是运行时会报异常...角度分析 上述代码的执行顺序 , Kotlin 类 对象在实例化 时会执行一系列的 初始化操作 , 这些操作按照如下顺序执行 :
主构造函数 中属性赋值
类中的属性赋值
init 初始化块 中的代码执行...再后 , 执行 init 初始化块 , 其中先执行 nameFirstLetter 函数 , 在该函数中调用了 fun nameFirstLetter() = name[0] 中的 name 属性 ,...}
该问题的本质就是 , 成员属性 在 init 初始化代码块中进行初始化 , 但是在初始化之前调用了该 成员属性 , 编译时没有报错信息 , 但是运行时会报异常 ;
三、解决方案
----
调换 初始化代码块...中的代码顺序 , 先给 name 成员赋值 , 然后再执行 调用 name 成员的方法 ;
class Hello{
var name: String
fun nameFirstLetter