我正在尝试编写一个函数,该函数需要一些字符串并对其执行某些操作。
我要做的唯一一件事就是字符串集遍历它们。现在,我最终遇到了一个尴尬的构想:
public void foo(String[] myStrings){
foo(java.util.Arrays.asList(myStrings));
}
public void foo(Iterable<String> myStrings){
for(String i : myStrings){
bar(i);
}
}
从那以来感觉多余
for(String i : myStrings){
bar(i);
}
对于类型为String []的myStrings而言,将是完全有效的代码。
是否有一个我可以让foo接受的类,该类将同时允许集合和数组?
最佳答案
参见Why is an array not assignable to Iterable?
简短的回答:不。据我了解,数组类型是合成代码,因此不实现Iterable
或任何其他类型。您需要提供一种重载方法或要求客户端在调用站点上调用Arrays.asList
。