1

我正在使用增强的 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等,但我必须有一个单独的方法用于常规数组。有什么方法可以结合这个(不使用反射,或增加行数,或创建垃圾),所以我不必重复代码?

4

2 回答 2

5
public void addItems(Item[] items) {
    addItems(Arrays.asList(items));
}
于 2013-02-14T01:46:56.700 回答
4

您可以重载该方法(首选)

public void addItems(Item[] items) {
   addItems(Arrays.asList(items));
}

或每次调用该方法时转换为列表。

addItems(Arrays.asList(new int[]{1,2,3}));

第二种方法不是最优的。正如 Sticky 所提到的:

我想 Arrays.asList 到处都有更多的重复,而不是我班上的 3 行。

于 2013-02-14T01:48:07.760 回答