如何基於第四個二級構造函數中的值有條件超級調用? 爲什麼不能工作?擴展類條件分支超值的Kotlin二級構造函數
open class SecondaryConstructors{
constructor(i:Int)
constructor(s:String)
}
class SecondaryExtended:SecondaryConstructors {
constructor(i:Int):super(i)
constructor(s:String):super(s)
constructor():super(if(true)1 else 0)
constructor(intOrString:Boolean):super(if(intOrString) 3 else "hey")
// conditional branch result of int/string is implicitly cast to Any
// error - none of the following functions can be called with the arguments supplied
}
爲什麼你需要這個?在實踐中,我會使用帶有工廠功能的伴侶對象。 – 9000
@ 9000不需要探索,閱讀Kotlin In Action書籍,還需要了解伴侶對象。 –
這在Java中也不能表達。 – ephemient