Saya tidak tahu apakah ini adalah "kasus penggunaan resmi", tetapi yang berikut menghasilkan peringatan di Jawa (yang selanjutnya dapat menghasilkan kesalahan kompilasi jika dicampur dengan return
pernyataan, yang mengarah ke kode yang tidak terjangkau):
while (1 == 2) { // Note that "if" is treated differently
System.out.println("Unreachable code");
}
Namun ini legal:
while (isUserAGoat()) {
System.out.println("Unreachable but determined at runtime, not at compile time");
}
Jadi saya sering menemukan diri saya menulis metode utilitas konyol untuk cara tercepat untuk mengeluarkan blok kode, kemudian dalam menyelesaikan debugging temukan semua panggilan ke sana, jadi asalkan implementasi tidak berubah ini dapat digunakan untuk itu.
JLS menunjukkan if (false)
tidak memicu "kode tidak terjangkau" karena alasan tertentu bahwa ini akan merusak dukungan untuk flag debug, yaitu, pada dasarnya ini use case (h / t @auselen). ( static final boolean DEBUG = false;
misalnya).
Aku diganti while
untuk if
, memproduksi kasus penggunaan lebih jelas. Saya percaya Anda dapat menjebak IDE Anda, seperti Eclipse, dengan perilaku ini, tetapi pengeditan ini adalah 4 tahun ke depan, dan saya tidak memiliki lingkungan Eclipse untuk dimainkan.