java - "final int i"如何在 Java for 循环中工作?

标签 java final

我惊讶地发现编译并运行了以下 Java 代码片段:

for(final int i : listOfNumbers) {
     System.out.println(i);
}

其中 listOfNumbers 是一个整数数组。

我认为最终声明只分配了一次。编译器是否在创建一个 Integer 对象并更改它所引用的内容?

最佳答案

想象一下速记看起来很像这样:

for (Iterator<Integer> iter = listOfNumbers.iterator(); iter.hasNext(); )
{
    final int i = iter.next();
    {
        System.out.println(i);
    }
}

关于java - "final int i"如何在 Java for 循环中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911167/

相关文章:

Java3D - 找不到某些类,但类路径设置正确

java - FacesContext 内的请求处理

java - 最终和有效最终之间的区别

java - 与Java软件包的混淆

groovy - Groovy 中 static 和 final 修饰符的使用

java - Android-java.lang.IllegalArgumentException

java - java 获取二维数组中行和列的最大长度

java - 如何从其他应用程序中读取神经节信息?

dart - 静态最终对象更改身份

inheritance - 在 TypeScript 中是否有等同于 "sealed"或 "final"的东西?