Berbilang Pulangan di Java: Mendedahkan Nilai Pulangan Akhir
Pertimbangkan kod Java yang menarik berikut:
String test() { try { return "1"; } finally { return "2"; } }
Kod ini memperkenalkan situasi pelik di mana berbilang penyata pulangan digunakan dalam kaedah yang sama. Timbul persoalan: adakah spesifikasi bahasa Java secara eksplisit mentakrifkan nilai pulangan akhir untuk senario sedemikian?
Spesifikasi Bahasa
Jawapannya terletak dalam spesifikasi bahasa. Menurut Spesifikasi Bahasa Java, nilai pulangan akhir sentiasa nilai yang dikembalikan oleh pernyataan pulangan terakhir yang dilaksanakan. Dalam kes khusus ini, pulangan terakhir yang dilaksanakan berlaku dalam blok akhirnya, menghasilkan nilai pulangan akhir "2".
Pematuhan JVM
Spesifikasi ini mengikat untuk semua Mesin Maya Java (JVM). Mana-mana JVM yang menyimpang daripada tingkah laku ini dianggap tidak mematuhi spesifikasi bahasa. Oleh itu, anda boleh yakin bahawa nilai pulangan akhir kaedah test() akan sentiasa "2" pada mana-mana JVM yang mematuhi.
Amaran dan Syor Pengkompil
Walaupun spesifikasi bahasa mentakrifkan tingkah laku, kebanyakan penyusun akan mengeluarkan amaran tentang pembinaan kod tersebut. Eclipse, sebagai contoh, mungkin menunjukkan bahawa blok pemulangan tidak akan dilaksanakan, yang tidak betul. Ini menunjukkan sifat menulis kod yang tidak diingini dengan berbilang pulangan.
Amalan Terbaik
Adalah sangat tidak digalakkan untuk menggunakan berbilang pulangan dalam satu kaedah. Amalan ini merumitkan kebolehbacaan kod, memperkenalkan potensi tingkah laku yang tidak dijangka dan melanggar amalan terbaik yang telah ditetapkan. Sentiasa bertujuan untuk kod yang jelas dan ringkas yang mematuhi garis panduan industri.
Atas ialah kandungan terperinci Apakah nilai pulangan akhir kaedah Java dengan berbilang penyata pulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!