init {}
в Kotlin — это блок инициализации, и его аналог в Java — это инициализатор экземпляра (instance initializer block).
Пример Kotlin:
class Person(val name: String) {
init {
println("Init block: $name")
}
}
Аналог в Java:
public class Person {
private final String name;
{
System.out.println("Init block: " + name);
}
public Person(String name) {
this.name = name;
}
}
Обрати внимание:
init {}
выполняется при создании экземпляра, до тела конструктора- в Java это называется «instance initializer block» и выполняется до тела конструктора
Как работает?
Этап | Kotlin (init {} ) | Java |
---|---|---|
Когда выполняется | при вызове primary constructor | перед телом конструктора |
Может быть несколько? | Да, выполняются в порядке объявления | Да |
Можно использовать параметры конструктора | Да | Да |