Если вы переходите с java на kotlin, то у вас часто возникают вопросы вроде — как сделать на kotlin то, что вы делали на java вот так и так.
В java вызов перегруженного конструктора в другом конструкторе класса выглядит следующим образом. Представим, что у нас есть класс с двумя полями и два конструктора.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class MyClass { private int id; private String name; public MyClass(int id, String name) { this.id = id; this.name = name; } public Myclass(String name) { this(0, name); ... } } |
Во втором конструкторе мы вызываем первый, используя токен this. И выполняем еще какой то код после этого (многоточие). Вот как тоже самое будет выглядеть в kotlin реализации:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class MyClass { private var id: Int = 0; private var name: String = ""; constructor(id: Int, name: String) { this.id = id this.name = name } constructor(name: String): this(0, name) { ... } } |
Вызов другого конструктора указывается через двоеточие, а код оборачивается в тело второго конструктора.