Wil*_*hoi 0 java variadic-functions
我正在寻找一种方法,以便我可以使用相同的代码部分来处理通过Set或variadic参数传递的参数.例如
public void func(String...strs){
for (String str : strs){
//Deal with str
}
}
Run Code Online (Sandbox Code Playgroud)
根据规范,func还将支持:
public void func(Set<String> strs){
for (String str : strs)
//Deal with str
}
}
Run Code Online (Sandbox Code Playgroud)
}
两个处理代码都是相同的,我如何合并到单个实现?请提出建议.
谢谢.
问候,威廉
你提出的问题没有有效的解决方案.Varadic函数接收一个数组.没有魔杖会挥动自己并转换java.util.Set为阵列.
此外,语义不匹配,因为Set是无序的并且禁止重复,并且数组被排序并允许重复.
你可以将第二个函数定义为
public void func(Set<String> strs) {
func(strs.toArray(new String[strs.size()]);
}
Run Code Online (Sandbox Code Playgroud)
并支付分配费用.