我试图接受一个vararg参数作为Kotlin中的函数参数,并尝试将其传递给另一个带有vararg参数的函数.但是,这样做会给我一个编译时错误,类型不匹配:推断类型是IntArray但Int是预期的.
科特林:
fun a(vararg a: Int){ b(a) // type mismatch inferred type is IntArray but Int was expected}fun b(vararg b: Int){}
但是,如果我在Java中尝试相同的代码,它的工作原理.
Java的:
voID a(int... a) { b(a); // works completely fine}voID b(int... b) {}
我怎么能绕过这个?
解决方法:
只需在你传递的参数(传播运算符)前放一个*,即
fun a(vararg a: Int){ // a actually Now is of type IntArray b(*a) // this will ensure that it can be passed to a vararg method again}
另见:Kotlin functions reference #varargs
总结以上是内存溢出为你收集整理的java – 在将vararg参数传递给Kotlin中的另一个函数时编译时间错误全部内容,希望文章能够帮你解决java – 在将vararg参数传递给Kotlin中的另一个函数时编译时间错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)