Junior
Jak implementovat více konstruktorů ve třídě v Kotlinu?
sobes.tech AI
Odpověď od AI
Pro vytvoření více konstruktorů v Kotlinu se používá primární konstruktor a podle potřeby jeden nebo více sekundárních konstruktorů.
Primární konstruktor je deklarován přímo v hlavičce třídy:
class MyClass(primaryParam1: String, primaryParam2: Int) {
// Tělo třídy
}
Sekundární konstruktor je deklarován pomocí klíčového slova constructor:
class MyClass {
// Primární konstruktor (implicitní nebo explicitní)
constructor(param1: String) {
// Logika sekundárního konstruktoru 1
}
constructor(param1: String, param2: Int) {
// Logika sekundárního konstruktoru 2
}
}
Pokud má třída primární konstruktor, musí každý sekundární konstruktor delegovat volání na primární konstruktor pomocí this():
class MyClass(primaryParam: String) {
constructor(secondaryParam: Int) : this(secondaryParam.toString()) {
// Logika sekundárního konstruktoru
}
}
Lze mít také více sekundárních konstruktorů delegujících na primární nebo jiné sekundární konstruktor, přičemž se dodržuje hierarchie delegace:
class MyClass(primaryParam: String) {
constructor(param1: String, param2: Int) : this(param1) {
// Logika konstruktoru 1
}
constructor(param1: String, param2: Int, param3: Boolean) : this(param1, param2) {
// Logika konstruktoru 2
}
}
Důležité body:
- Tělo primárního konstruktoru se vykoná před tělem sekundárních konstruktorů.
- Vlastnosti deklarované v hlavičce primárního konstruktoru mohou být dostupné v těle sekundárních konstruktorů.
- V Kotlinu se doporučuje používat primární konstruktor a pokud možno se vyhnout sekundárním konstruktorům, upřednostňovat pojmenované argumenty nebo tovární metody.