私は最近、リリース前にコード ベースからコード ブロックを削除し、実行を防ぐために if(false) ステートメントを使用していました。
if (false) {
ArrayList<String> list = new ArrayList<String>();
...
}
これは正常にコンパイルされ、問題のあるコードブロックの実行を防ぎます (正しいか間違っているか、それは現在の引数ではありません)。
ただし、偶然にも、上記のブロックを次のように変更しました。
while (false) {
ArrayList<String> list = new ArrayList<String>();
...
}
到達不能ステートメントのコンパイル エラーを受け取りました。
私はコンパイルエラーに感謝し、その理由を理解していますが、2つのブロックの違いと、前者は正常にコンパイルされるのに、両方に到達できないステートメントがある場合に後者がうまくコンパイルされない理由を理解するのに苦労しています。