2009-08-16 2 views
0

이것이 Java 5에서 컴파일되지만 Java 6에서 컴파일되지 않는 이유는 무엇입니까?Java 5 및 6의 for 문에서의 최종 변수

for(final int k=0; k<10; k++); 

이 논리는 무엇입니까? Java 5와 6 사이의 변수 범위가 변경 되었습니까?

Sun 관련 문서에서이 문제를 찾을 수 없습니다.

+3

이것은 Java 5에서도 컴파일되지 않아야합니다. –

+0

그리고 범위가 아닙니다. –

+0

그 문장에서 그 변수를 final로 표시하려는 이유가 무엇인지 이해할 수 없습니다. – MattC

답변

1

소리가 그들은 버그를 수정 한 것 같습니다. 컴파일해서는 안됩니다.

5

Java 6 또는 Java 1.3.1에서는 컴파일되지 않습니다. (나는 다른 버전에 쉽게 액세스 할 수 없습니다.)

내가 아주 많이는 javac의 "정상"버전으로 컴파일 것입니다 의심 - k가 최종 선언으로 루프의 k++ 부분이 유효하지 않습니다.

자바 5에서 컴파일해야하나요? 어떤 플랫폼에서 어떤 정확한 버전입니까? IDE를 사용하고 있습니까, 아니면 명령 줄에서 사용 했습니까?

1

Java 5에서도 컴파일되지 않습니다.

2

k++ 때문에 모든 Java 버전에서 컴파일하지 않아야합니다.

for-each 루프와 섞이지 않았습니까? 다음은 Java 5 이상에서 컴파일되기 때문에 :

for (final int k : someIntArray) { ... }