1. ホーム
  2. java

Java Enumerationでforeachを使用できないのはなぜですか?

2023-09-24 17:27:52

質問

なぜできないのでしょうか。

Enumeration e = ...
for (Object o : e)
  ...

どのように解決するのですか?

なぜなら Enumeration<T> は拡張されないからです。 Iterable<T> . 以下は を使ったイテラブル列挙の例です。 .

なぜそれが興味深い質問なのかについて。これはあなたの質問とは違いますが、それについていくつかの光を当てています。からの Java Collections API 設計に関する FAQ :

<ブロッククオート

IteratorはなぜEnumerationを拡張しないのですか?

のメソッド名は不幸なものだと考えています。 Enumeration のメソッド名は不幸なものだと考えています。それらは 非常に長く、そして非常に頻繁に使用されます。 メソッドを追加して、まったく新しいフレームワークを作ることを考えると 全く新しいフレームワークを作るのですから この機会を利用しないのは愚かだと思いました。 この機会を利用しないのは と考えました。もちろん で新旧の名前をサポートすることもできますが もちろんIteratorで新旧の名前をサポートすることもできますが、それはあまり は価値がないように思えます。

それは基本的に、Sunが非常に初期のJavaでかなり冗長な構文であるEnumerationから距離を置きたいと考えていることを示唆しています。