Так что в настоящее время day: Int?
это просто параметр конструктора, а НЕ свойство экземпляра. Вы должны объявить его как val day: Int?
в вашем главном конструкторе, чтобы dayString
работал. Это, конечно, будет работать только для основного (основного) конструктора, и ваш класс будет выглядеть следующим образом:
class myClass private constructor(val day: Int?) {
constructor(
weather: String,
day: Int?
) : this(day) {
//I can put assignment here
}
val dayString: String = when(day) { //kotlin doesn't recognize 'day' variable here outside of constructors...
0 -> "Sunday"
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
6 -> "Saturday"
else -> "Not a valid day of the week!"
}
}
Если вы этого не сделаете, то: - добавьте значение по умолчанию для параметра конструкторов, например val day: Int? = null
- или добавить свойство inte rnet для хранения (например, var _day: Int? = null
)