如果我有一个像这样的 kotlin 类:
data class Anim (val name : String , var age : Int) {
constructor (a:Anim):this(a.name, a.age) {
}
constructor () :this("Dog") { }
}
我想使用构造函数引用语法,
val a = ::Anim
然后我得到了这个错误:
overload resolution ambiguity:
public constructor PornModel() defined in com.ripple.PornModel
public constructor PornModel(a: PornModel) defined in com.ripple.PornModel
public constructor PornModel(name: String, country: String = ...)
defined in com.ripple.PornModel
val a = ::PornModel::( String, String))
请告诉我这些论点有多特别
非常感谢任何帮助!铝
最佳答案
如错误消息中所述,Kotlin 编译器不知道要选择哪个构造函数
重载。您已明确声明 a
的类型,例如:
val twoArgs: (String, Int) -> Anim = ::Anim
val oneArg: (Anim) -> Anim = ::Anim
val noArg: () -> Anim = ::Anim
关于class - Kotlin 中的调用构造函数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47935596/