Как получить доступ к параметрам первичного конструктора внутри вторичного конструктора kotlin - PullRequest
0 голосов
/ 26 февраля 2020

Я учусь kotlin, и я читал о конструкторах: первичном и вторичном.

Вот мой вопрос, как мне получить доступ к параметрам первичного конструктора внутри вторичного конструктора. Я не могу получить доступ, но я не уверен, почему? Почему я не могу получить к нему прямой доступ?
Если кто-нибудь знает, пожалуйста, помогите мне лучше понять эту концепцию. Почему я не могу получить к нему доступ?

Я создал один демонстрационный класс с двумя конструкторами. Вот мой код:

fun main(args: Array<String>) {

    val person1 = Person("Joe", 25)
    println("First Name = ${person1.firstName}") // working, printing first name 

}

class Person(val firstName: String, var age: Int) {

    constructor(sectionName: String, id: Int, name: String) : this(sectionName,id)  {
        println("Age = ${age}") // not working, no output
    }

}

Или я что-то не так делаю?

PS: я знаю, что могу написать блок инициализации и назначить параметры переменной класса, и она работает как положено.

1 Ответ

1 голос
/ 26 февраля 2020

Вы должны вызвать ваш вторичный конструктор, который ожидает завершающий параметр name:

    val person1 = Person("Joe", 25, "name") //prints Age = 25
    val person2 = Person("Joe", 25) //prints nothing

В вашем примере первичный конструктор выбирается в качестве списка аргументов, отображающего его параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...