1
  1. 列挙に foreach を使用できないことに気付きました。

  2. 以下で無限ループが発生する理由:

    while(keyStore.aliases().hasMoreElements()) {
        System.out.println(keyStore.aliases().nextElement());
    }
    

私は使用する必要があります:

Enumeration e = keyStore.aliases();
while(e.hasMoreElements()) {
    System.out.println(e.nextElement());
}
4

3 に答える 3

5

を呼び出すたびに、シーケンスの先頭を指すkeyStore.aliases()真新しいを取得します。Enumeration

于 2013-01-01T00:08:52.983 に答える
1

最初の質問に関しては、foreachを実装する任意のクラスで使用できますIterableEnumerationsしないでください、そしてそれらはIterators1998年までに廃止されました.

于 2013-01-01T00:29:08.370 に答える
0

エントリ数が少ない場合は、

Collections.list(Enumeration)これにより、ArrayList反復できる が得られます。

http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#list(java.util.Enumeration )

于 2013-01-01T00:34:46.973 に答える