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}));

2 番目の方法は最適とは言えません。スティッキーが述べたように:

私のクラスの3行ではなく、いたるところに Arrays.asList との重複があると思います。

于 2013-02-14T01:48:07.760 に答える