Kotlin构造函数中的语句

有没有办法在Kotlin中混合语句(如打印语句)和成员分配? 这里是我想要做的一个例子(用Java):

class MySystem { ComponentA componentA; ComponentB componentB; public MySystem() { System.out.println("Initializing components"); this.componentA = new ComponentA(); System.out.println("Constructed componentA"); this.componentB = new ComponentB(); System.out.println("Constructed componentB"); } } 

感谢任何输入,谢谢。

是的,有:使用init块 。 init块和属性初始值设定项的执行顺序与它们出现在代码中的顺序相同:

 class MyClass { init { println("Initializing components") } val componentA = ComponentA() init { println("Constructed componentA") } val componentB = ComponentB() init { println("Constructed componentA") } } 

或者,也可以分开声明和初始化:

 class MyClass { val componentA: ComponentA val componentB: ComponentB init { println("Initializing components") componentA = ComponentA() println("Constructed componentA") componentB = ComponentB() println("Constructed componentB"); } } 

这也将与二级构造函数一起使用。

声明这些字段并使用init块:

 internal class MySystem { val componentA: ComponentA val componentB: ComponentB init { println("Initializing components") this.componentA = ComponentA() println("Constructed componentA") this.componentB = ComponentB() println("Constructed componentB") } }