Amaran Eclipse tentang hantaran yang tidak ditanda berpunca daripada kod yang berpotensi berisiko, di mana kelas atau kaedah digunakan tanpa pemeriksaan jenis yang betul. Mari kita atasi kebimbangan ini untuk kaedah yang mengembalikan Objek dan ditetapkan kepada jenis tertentu, menyebabkan amaran:
HashMap<String, String> getItems(javax.servlet.http.HttpSession session) { return (HashMap<String, String>) session.getAttribute("attributeKey"); }
Untuk menghapuskan amaran ini, pertimbangkan pendekatan berikut:
Contoh:
@SuppressWarnings("unchecked") Map<String, String> myMap = (Map<String, String>) deserializeMap();
Amalan terbaik adalah untuk mengelakkan hantaran tanpa tanda apabila boleh. Jika API memaksa anda untuk bekerja dengan Objek, cuba sempitkan jenisnya kepada kelas tertentu sebelum menghantar. Jika perlu, pertimbangkan untuk menggunakan operator instanceof untuk memastikan jenisnya betul sebelum melakukan cast.
Amaran cast yang tidak disemak timbul apabila pengkompil tidak dapat menentukan keselamatan berasaskan cast atas maklumat yang ada. Dalam kes anda, pengkompil tidak dapat menjamin jenis objek yang dikembalikan ialah HashMap
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Amaran Cast Tidak Ditanda dengan Berkesan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!