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") } }