假设我有一个公共函数a()
和一个私有方法b()
。两者都有可变数量的参数。 a()
需要将其参数传递给私有函数b()
,然后私有函数c()
将可变数量的参数转换为EnumSet并将其传递给public void a(MyEnum ... enums){
// what code do I need here, to pass the parameters to b()?
}
private void b(MyEnum ... enums){
for (int i = 0; i < enums.length; i++){
// make EnumSet and pass it to c()
}
}
private void c(EnumSet<MyEnum> enumSet){
}
。
a()
我如何编码{{1}}?
答案 0 :(得分:1)
b(enums);
此外,您可以完全跳过b
并将for
循环移至方法a
。
答案 1 :(得分:1)
arbitrary number of arguments(称为 varargs )是一种不手动创建数组的方法。在这样的方法里面它是一个数组。
你可以将这样的数组作为参数传递给vararg方法:
public void a(MyEnum ... enums) {
b(enums);
}
private void b(MyEnum ... enums) { ... }