Rumah >Java >javaTutorial >Bagaimanakah `@SuppressWarnings('unchecked')` Mengendalikan Penukaran Tidak Ditanda dalam Java?
Memahami SuppressWarnings ("tidak ditandai") dalam Java
Anotasi Java membenarkan pembangun menandai elemen kod dengan metadata tambahan. Satu anotasi sedemikian, @SuppressWarnings, digunakan untuk menyenyapkan amaran pengkompil tertentu. Argumen ("tidak ditanda") dalam anotasi ini secara khusus menindas amaran yang berkaitan dengan penukaran yang tidak ditanda.
Penukaran dan Generik Tidak Ditanda
Generik Java menguatkuasakan keselamatan jenis dengan memastikan parameter jenis itu disemak pada masa penyusunan. Walau bagaimanapun, kadangkala, adalah perlu untuk melakukan penukaran tanpa tanda, di mana keselamatan jenis tidak dijamin. Contohnya, kod berikut mungkin mencetuskan amaran penukaran yang tidak disemak:
List<String> names = new ArrayList<>(); names.add("John"); // Warning: unchecked conversion // Pretend that I know John will always be a String Object john = names.get(0);
Menindas Amaran Penukaran Tidak Ditanda
Untuk menyekat amaran ini, kita boleh menggunakan @SuppressWarnings( anotasi "tidak ditandai"):
@SuppressWarnings("unchecked") List<String> names = new ArrayList<>(); names.add("John"); Object john = names.get(0);
Dengan menambahkan @SuppressWarnings("unchecked") anotasi kepada perisytiharan pembolehubah nama, kami secara berkesan memberitahu pengkompil bahawa kami menyedari potensi penukaran yang tidak disemak dan ia selamat dalam kes ini.
Kaveat
Menekan amaran penukaran yang tidak disemak hendaklah dilakukan dengan berhati-hati. Adalah penting untuk memastikan bahawa penukaran yang tidak disemak sememangnya selamat, kerana ia berpotensi membawa kepada ralat masa jalan. Ia juga merupakan amalan yang baik untuk menambah ulasan penjelasan pada kod yang menjelaskan sebab penukaran yang tidak disemak itu diperlukan.
Sumber Tambahan
Untuk mendapatkan maklumat lanjut tentang penukaran yang tidak disemak dan @SuppressWarnings anotasi, rujuk sumber berikut:
Atas ialah kandungan terperinci Bagaimanakah `@SuppressWarnings('unchecked')` Mengendalikan Penukaran Tidak Ditanda dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!