【发布时间】:2020-02-28 02:07:31
【问题描述】:
这个小代码给出了错误:未解决的参考:make:
sealed class Color () {
object Red : Color()
object Blue : Color()
override fun toString(): String =
when (this) {
is Red -> "Red"
is Blue -> "Blue"
else -> "Error"
}
fun make(name: String): Color {
return when (name) {
"Red" -> Red
"Blue" -> Blue
else -> throw Exception ("Error unkown color '$name'")
}
}
}
fun main(args: Array<String>) {
val color = Color.make("Red")
println (color.toString())
}
我尝试了 val color = make("Red") 并得到了同样的错误。为什么 ?我必须做些什么来解决这个问题?
【问题讨论】:
-
你的
make是一个实例方法,即你需要一个Color的实例来调用它:就像Color().make("red")一样,这是因为Color没有参数构造函数。如果您希望像在示例中那样调用它,可以将make放在伴随对象中。