gpt4 book ai didi

java - 使用可变参数在 kotlin 中调用构造函数

转载 作者:IT老高 更新时间:2023-10-28 13:39:44 29 4
gpt4 key购买 nike

有没有什么方法可以使用可变参数调用构造函数,而无需对数组参数进行硬编码(datain[0]datain[10] 等)。例如,

constructor(vararg datain:String): this(datain[0],datain[1],datain[2]){
}

目前我是这样打电话的:

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]){
}
}

最佳答案

vararg 开始似乎有点无意义可以包含比其他构造函数预期的更多或更少的项目。此外,当所有参数都具有相同类型时,这种情况非常罕见,因此 vararg会套房。但是不,目前没有可以分解 vararg 的语言功能。进入函数或构造函数调用非可变参数。

我想,语言设计最好让你明确地表明你选择了vararg的某些项目。因为它没有隐藏的陷阱,您将始终了解索引。

但是你可以通过 vararg参数为 vararg参数到另一个函数或构造函数,可能是,已经转换了它。由扩展运算符 * 完成,见例子:

public class V(vararg s: String) {
constructor(vararg s: Int): this("a", *s.map(Int::toString).toTypedArray(), "b")
}

可以使用 * 传递任何正确类型的数组(包括 vararg 本身,因为它是一个数组),但这就是 vararg 的力量结束。

关于java - 使用可变参数在 kotlin 中调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31415093/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com