これはJava 5ではコンパイルされるが、Java 6ではコンパイルされない理由は何ですか?Java 5および6のforステートメントの最終変数
for(final int k=0; k<10; k++);
これの背後にある論理は何ですか? Java 5と6の間の変数の範囲の変更
Sunのドキュメントではこれについては何も見つかりません。
これはJava 5ではコンパイルされるが、Java 6ではコンパイルされない理由は何ですか?Java 5および6のforステートメントの最終変数
for(final int k=0; k<10; k++);
これの背後にある論理は何ですか? Java 5と6の間の変数の範囲の変更
Sunのドキュメントではこれについては何も見つかりません。
彼らはバグを修正したようですね。コンパイルしないでください。
私にとっては、Java 6またはJava 1.3.1でコンパイルされません。 (私は他のバージョンに簡単にアクセスすることはできません。)
私は非常にそれがjavac
のいずれかの「正常な」バージョンでコンパイルすることはないだろう - k
が最終的に宣言されたように、ループのk++
一部が無効です。
あなたはJava 5でコンパイルできますか?どのプラットフォームでどのバージョンが正確ですか? IDEを使用していたのですか、それともコマンドラインからのものでしたか?
Java 5でもコンパイルされません。
k++
のため、どのバージョンのJavaでもコンパイルしないでください。
for-eachループと混同されていませんか?以下はJava 5以降でコンパイルするためです:
for (final int k : someIntArray) { ... }
これはJava 5でもコンパイルしてはいけません。 –
これはスコープの問題ではありません。 –
私は、なぜその変数をそのステートメントのfinalとしてマークしたいのか理解できません。 – MattC