Rumah >Java >javaTutorial >Bagaimana Casting Berfungsi di Java, dan Bilakah Ia Boleh Berlaku Salah?

Bagaimana Casting Berfungsi di Java, dan Bilakah Ia Boleh Berlaku Salah?

Barbara Streisand
Barbara Streisandasal
2024-12-25 06:48:28776semak imbas

How Does Casting Work in Java, and When Can It Go Wrong?

Memahami Casting dalam Java

Bagi pengaturcara baru, casting boleh menjadi konsep yang mengelirukan. Walaupun ia difahami masa untuk memanfaatkan pemutus, mekanismenya masih sukar difahami. Artikel ini menyelidiki selok-belok pemutus di Jawa, terutamanya apabila berurusan dengan pemutus objek.

Pemutus dalam Java melibatkan memaklumkan pengkompil bahawa objek jenis A sebenarnya daripada jenis B yang lebih khusus, dengan itu memberikan akses kepada kaedah tambahan. Ia bukan penukaran ajaib, sebaliknya amanah yang diberikan kepada penyusun. Contohnya:

Object o = "str";
String str = (String)o;

Di sini, Objek o sememangnya rentetan, jadi menghantarnya ke rentetan adalah sah. Walau bagaimanapun, dua senario kritikal boleh membawa kepada ralat. Pertama, menghantar antara hierarki warisan yang tidak berkaitan mencetuskan ralat pengkompil:

String o = "str";
Integer str = (Integer)o; //Compilation fails

Kedua, menghantar dalam hierarki yang sama, tetapi dengan jenis sasaran yang tidak sah, menghasilkan ClassCastException pada masa jalan:

Number o = new Integer(5);
Double n = (Double)o; //ClassCastException

Pengecualian ini menunjukkan pelanggaran amanah penyusun. Pengaturcara menegaskan bahawa objek itu daripada jenis tertentu, bertentangan dengan realiti.

Penghantaran terutamanya diperlukan apabila beralih daripada jenis umum kepada yang lebih khusus. Sebagai contoh, menghantar Integer kepada Nombor boleh diterima kerana semua Integer ialah Nombor. Generik, yang diperkenalkan dalam Java-5, telah mengurangkan keperluan untuk pemutus dengan menyediakan alternatif yang lebih selamat. Dengan penggunaan generik yang betul, ClassCastException boleh ditiadakan secara praktikal.

Atas ialah kandungan terperinci Bagaimana Casting Berfungsi di Java, dan Bilakah Ia Boleh Berlaku Salah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn