man*_*ish 8 java constructor kotlin
有没有什么方法来调用使用可变参数构造函数没有硬编码阵列参数(datain[0],datain[10],等).例如,
constructor(vararg datain:String): this(datain[0],datain[1],datain[2]){
}
Run Code Online (Sandbox Code Playgroud)
目前我这样打电话:
public class parent(var var1:String, var var2:String){
}
public class child(var var3:String, var1:String, var2:String): parent(var1,var2){
constructor(vararg datain:String): this(datain[0],datain[1],datain[2]){
}
}
Run Code Online (Sandbox Code Playgroud)
hot*_*key 13
它似乎有点无意义,因为vararg可以包含比其他构造函数所期望的更多或更少的项.此外,当所有参数具有相同的类型以便vararg将套件放置时,这种情况非常罕见.但不,目前没有语言功能会分解vararg为函数或构造函数调用非vararg参数.
我想,最好是语言设计让你明确地显示你选择某些项目,vararg因为它不包含任何隐藏的陷阱,你将始终了解索引.
但你可以将一个vararg参数作为vararg参数传递给另一个函数或构造函数,可能已经转换了它.它由spread运算符 完成*,请参见示例:
public class V(vararg s: String) {
constructor(vararg s: Int): this("a", *s.map(Int::toString).toTypedArray(), "b")
}
Run Code Online (Sandbox Code Playgroud)
任何正确类型的数组都可以使用*(包括vararg它自己,因为它是一个数组),但它是vararg结束的力量.
| 归档时间: |
|
| 查看次数: |
6612 次 |
| 最近记录: |