首页 > 解决方案 > 未解决的类属性引用

问题描述

我的代码:

open class Team (val country: String = "England",
            val aggressive: Boolean = true, 
             name: String, squadSize: Int = 24) {

    val attendance: Int

    init {
        if (aggressive){
            attendance = 25000
        } else {
            attendance = 20000
        }
    }

}

fun chooseTeam(team: String) {
    val homeTeam = Team(name = "Blue Team")
    println("the home team is ${homeTeam.name} so they are ${if(homeTeam.aggressive) "angry" else "timid" }")
}

Unresolved reference: name开始了${homeTeam.name}

但是我已经指定了name实例化类的时间val homeTeam = Team(name = "Blue Team")- 知道为什么我得到未解决的引用吗?

标签: kotlin

解决方案


在 Kotlin 中,您需要将val/var放在主构造函数中的任何属性之前,否则该属性不会被声明为成员变量。

请更正:

open class Team(
    val country: String = "England",
    val aggressive: Boolean = true,
    val name: String,
    val squadSize: Int = 24
) {
   ...
}

推荐阅读