有没有办法在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
blocks。 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");
}
}
这也将与辅助构造函数一起使用。