我正在使用增强的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
等,但是我必须对常规数组使用单独的方法。是否有某种方法可以将其组合在一起(无需使用反射,增加行数或创建垃圾),因此我不必重复代码? 最佳答案
您可以重载方法(首选)
public void addItems(Item[] items) {
addItems(Arrays.asList(items));
}
或在每次调用该方法时转换为列表。
addItems(Arrays.asList(new int[]{1,2,3}));
第二种方法不是最佳方法。正如Sticky提到的:
我猜想在整个Arrays.asList上有更多重复项
而不是我班上的三行。