我正在使用增强的for循环,它看起来像这样:
public void addItems (Iterable<Item> items) {
for (Item item : items) {
addItem(item);
}
}
public void addItems(Item[] items) {
for(Item item : items) {
addItem(item);
}
}
使用Iterable
允许我使用List
等,但我必须有一个单独的常规数组方法。有没有办法将它组合起来(不使用反射,增加行数或创建垃圾),所以我不必重复代码?
答案 0 :(得分:5)
public void addItems(Item[] items) {
addItems(Arrays.asList(items));
}
答案 1 :(得分:4)
您可以重载方法(首选)
public void addItems(Item[] items) {
addItems(Arrays.asList(items));
}
或每次调用方法时转换为List。
addItems(Arrays.asList(new int[]{1,2,3}));
第二种方法不是最佳的。正如Sticky所说:
我认为Arrays.asList的重复性更高 而不是我班上的3行。