Kotlin:如何访问构造函数中的属性

考虑以下课程:

class Test() { init { log(foo) } val foo = "Bar" } 

当我instatiate测试它会产生一个NullPointerException,因为foo似乎没有被初始化。 这种行为实际上是打算? 有没有解决方法?

该类的主体是从上到下执行的。 如果你想在属性初始化之后运行一段代码,你应该把它放在较低的位置:

 class Test() { val foo = "Bar" init { log(foo) } }