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

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).