gpt4 book ai didi

java - 在Java中,如何使方法能够接受可变参数或参数集而不重复实现代码?

转载 作者:行者123 更新时间:2023-12-01 07:15:25 25 4
gpt4 key购买 nike

我正在寻找一种方法,以便我可以使用相同的代码部分来处理通过 Set 或可变参数传递的参数。例如

public void func(String...strs){
for (String str : strs){
//Deal with str
}
}

根据规范,该 func 还将支持:

public void func(Set<String> strs){
for (String str : strs)
//Deal with str
}
}

}

两个处理代码是相同的,我如何合并到一个实现?请各位多多指教。

谢谢。

问候,威廉

最佳答案

对于您提出的问题,没有有效的解决方案。 Varadic 函数接收一个数组。没有魔杖会自行挥舞并从 java.util.Set 转换为数组。

此外,语义不匹配,因为 Set 是无序的并且禁止重复,而 array 是有序的并且允许重复。

您可以将第二个函数定义为

public void func(Set<String> strs) {
func(strs.toArray(new String[strs.size()]);
}

并支付分配费用。

关于java - 在Java中,如何使方法能够接受可变参数或参数集而不重复实现代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4210974/

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