我正在使用增强的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上有更多重复项
  而不是我班上的三行。

09-26 18:04