Kotlin次级构造函数调用报错:参数匹配失败问题求助
问题排查:Kotlin构造函数调用错误原因解析
嗨,别着急,这个问题其实是个很容易忽略的拼写小错误!
你看你写的二级构造函数里,调用主构造函数时传了一个参数叫isBlesed,但主构造函数里对应的参数明明是isBlessed——你少写了一个字母's'!
Kotlin是强类型语言,参数名称必须完全匹配,所以当你写错参数名时,编译器找不到对应的构造函数参数,就会抛出“没有匹配的构造函数可调用”的错误。
修正后的代码:
class Player (_name: String, var healthPoints: Int, val isBlessed: Boolean, private val isImmortal: Boolean) { var name = _name get() = field.capitalize() private set(value) { field = value.trim() } // 这里把isBlesed改成isBlessed就没问题了 constructor(name: String) : this(name, healthPoints = 100, isBlessed = true, isImmortal = false) }
补充说明:
这种拼写错误在日常编码里很常见,尤其是长参数名的时候。你可以借助IDE的自动补全功能来避免这类问题,输入到一半时让IDE帮你补全参数名,就能减少手滑写错的概率啦。
内容的提问来源于stack exchange,提问作者Zachary Schiff
相关产品推荐
相关产品推荐

