在Kotlin中调用构造函数引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Kotlin中调用构造函数引用相关的知识,希望对你有一定的参考价值。
如果我有这样的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
重载。你明确说明了a
的类型:
val twoArgs: (String, Int) -> Anim = ::Anim
val oneArg: (Anim) -> Anim = ::Anim
val noArg: () -> Anim = ::Anim
以上是关于在Kotlin中调用构造函数引用的主要内容,如果未能解决你的问题,请参考以下文章
kotlin:sceondary构造函数中的“未解析的引用”