关于java中枚举的两个问题

Ada*_*Lee 1 java enumeration

  1. 我注意到我不能使用foreach进行枚举,我想知道为什么?

  2. 为什么以下给我无限循环:

    while(keyStore.aliases().hasMoreElements()) {
        System.out.println(keyStore.aliases().nextElement());
    }
    
    Run Code Online (Sandbox Code Playgroud)

我必须使用:

Enumeration e = keyStore.aliases();
while(e.hasMoreElements()) {
    System.out.println(e.nextElement());
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 5

每次打电话keyStore.aliases(),都会得到一个全新的Enumeration,指向序列的开头.