【发布时间】:2014-08-07 20:46:59
【问题描述】:
我最近了解到,您不能在 Java 中使用增强型 for 循环来初始化对象,因为增强型 for 循环的工作方式是从对象创建一个“虚拟”对象,然后使用虚拟对象执行任何代码状态
但这促使我尝试使用增强的 for 循环更改对象内的字段变量,令人惊讶的是,代码更改了对象中的字段变量。任何人都可以向我解释这是如何工作的,因为据我了解,对象不应发生任何更改,原因与您无法使用增强的 for 循环初始化对象相同。显然我在这里暴露了我的理解上的差距,所以任何人都可以帮助我
【问题讨论】:
-
如果你能展示一个正在工作的例子,以及一个没有工作的例子,那真的很有帮助。我怀疑这只是更改迭代变量的值(不允许)和更改迭代变量引用的对象内的数据(允许)之间的区别。
标签: java arrays for-loop foreach initialization