[英]How to access primary constructor parameters inside secondary constructor kotlin
我正在學習 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:我知道我可以編寫 init 塊並將參數分配給類變量,它按預期工作。
您必須調用輔助構造函數,它需要一個尾隨name
參數:
val person1 = Person("Joe", 25, "name") //prints Age = 25
val person2 = Person("Joe", 25) //prints nothing
在您的示例中,主構造函數被選擇為您的參數列表映射其參數。
在您的代碼val person1 = Person("Joe", 25)
您正在調用一個具有兩個參數的構造函數,這是第一個構造函數而不是第二個。 像這樣調用第二個構造函數val person1 = Person("Joe", 25,"name")
。 我希望這很清楚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.