Java 是否有一个';超类&x27;对于Iterable和正则数组?

Java 是否有一个';超类&x27;对于Iterable和正则数组?,java,Java,我正在使用一个增强的for循环,它看起来像这样: public void addItems (Iterable<Item> items) { for (Item item : items) { addItem(item); } } public void addItems(Item[] items) { for(Item item : items) { addItem(item); } } public void a

我正在使用一个增强的for循环,它看起来像这样:

public void addItems (Iterable<Item> items) {
    for (Item item : items) {
        addItem(item);
    }
}

public void addItems(Item[] items) {
    for(Item item : items) {
        addItem(item);
    }
}
public void addItems(Iterable项){
用于(项目:项目){
增编(项目);
}
}
公共无效附加项(项[]项){
用于(项目:项目){
增编(项目);
}
}

使用
Iterable
允许我使用
List
等,但对于正则数组,我必须有一个单独的方法。是否有某种方法可以将这两者结合起来(不使用反射、不增加行数或不创建垃圾),这样我就不必重复代码?

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

public void addItems(Item[] items) {
    addItems(Arrays.asList(items));
}
或者在每次调用该方法时转换为列表

addItems(Arrays.asList(new int[]{1,2,3}));
第二种方法不是最优的。正如斯蒂奇所提到的:

我想全世界的Arrays.asList都会有更多的重复 在我的课堂上,把这三行放在第一位,而不是第三行


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

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

addItems(Arrays.asList(new int[]{1,2,3}));
第二种方法不是最优的。正如斯蒂奇所提到的:

我想全世界的Arrays.asList都会有更多的重复 在我的课堂上,把这三行放在第一位,而不是第三行



@JLOR之所以选择“是”,是因为
List
实现了
Iterable
谢谢。那应该行吗?但它会制造垃圾吗?(我已经更新了这个问题,将其作为一个标准)@Sticky不,这只是一个简单的方法overloading@Sticky不,因为
数组.asList
返回的列表只是array@KevinBowersox:是的,我被他的方法名弄糊涂了。我以为他在试图插入给定的列表/数组。@jlordo是的,因为
list
实现了
Iterable
谢谢。那应该行吗?但它会制造垃圾吗?(我已经更新了这个问题,将其作为一个标准)@Sticky不,这只是一个简单的方法overloading@Sticky不,因为
数组.asList
返回的列表只是array@KevinBowersox:是的,我被他的方法名弄糊涂了。我以为他在试图插入给定的列表/数组。谢谢,请参阅jtahlborn(相同)的回答,以获取额外的问题。@Sticky,是的,他比我快了一点me@Sticky我提出了另一个选择,但我认为它不是最优的。我看不出有任何其他的方法,使用重载方法也没有什么害处。是的,那会管用,但我真的只是想让公共接口尽可能地简化。我会想象
数组会有更多的重复。asList
到处都是,而不是我班上的3行。@Sticky确切地说
我会想象数组会有更多的重复。asList到处都是,而不是我班上的3行。
谢谢,关于一个额外的问题,请参阅jtahlborn(相同)的答案。@Sticky,是的,他比我快多了me@Sticky我提出了另一个选择,但我认为它不是最优的。我看不出有任何其他的方法,使用重载方法也没有什么害处。是的,那会管用,但我真的只是想让公共接口尽可能地简化。我会想象
数组有更多的重复。asList
到处都是,而不是我班上的3行。@Sticky确切地说
我会想象数组有更多的重复。asList到处都是,而不是我班上的3行。