这个java片段可以重写吗?

-5 java

任何人都可以建议如何重写以下Java片段,如果是这样,为什么它不合适,谢谢!

try {
    int i = 0;
    while (true)
        a[i++].func();
} catch(ArrayIndexOutOfBoundsException e) {
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*rau 8

使用for-each循环:

for(TypeOfArray item : a) {
    item.func();
}
Run Code Online (Sandbox Code Playgroud)

或者一个简单的for循环:

for(int i = 0; i < a.length; i++) {
    a[i].func();
}
Run Code Online (Sandbox Code Playgroud)

结果字节码或多或少相同,但我发现 - 每个循环更优雅.您的代码不合适,因为它:

  • 使用例外进行流量控制
  • 使用while(true)循环(如果有任何其他方法,则不要使用它)