--
public class EnhancedForTest {
The enhanced for-loop as shown above is actually just as the following code:
public class EnhancedForTest {
public static void main(String... args) { String[] strArr = {"A", "B", "C", "D"}; for (final String s : strArr) { System.out.println(s); } } }Since the String s is delcared as final, this code should not compile. However, this is working fine. Why?
The enhanced for-loop as shown above is actually just as the following code:
public class EnhancedForTest { public static void main(String... args) { String[] strArr = {"A", "B", "C", "D"}; for (int index = 0; index < strArr.length; index++) { final String s = strArr[index]; System.out.println(s); } } }That is,
s
is a local variable (local to the for-loop) and it is not been assigned a value twice so it's just fine. Therefore, it's just local variable and each iteration of the loop a new different final local variable is created.
Comments
Post a Comment