在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编译器不知道要选择哪个constructor重载。 你有明确的types,例如:

 val twoArgs: (String, Int) -> Anim = ::Anim val oneArg: (Anim) -> Anim = ::Anim val noArg: () -> Anim = ::Anim