Nasıl kontrolsüz dökme uyarıları hitap edeyim?
Tutulma beni takip şeklinde bir uyarı veriyor:
Type safety: Unchecked cast from Object to HashMap<String, String>
Bu Nesne döndürür kontrol edemiyorum bir API çağrısı:
HashMap<String, String> getItems(javax.servlet.http.HttpSession session) {
HashMap<String, String> theHash = (HashMap<String, String>)session.getAttribute("attributeKey");
return theHash;
}
En azından potansiyel bir kod sorunu gösterdiğinden beri teorik olarak Tutulması uyarıları önlemek için mümkünse istiyorum. İyi bir şekilde bu ortadan kaldırmak için henüz, ama bulamadım. Ben özü tek satır yer için bir yöntem ile kendini ve Ekle @SuppressWarnings("işaretli") bu yöntem, böylece sınırlayıcı etkisi olan kod bloğu, nerede uyarıları görmezden. Daha iyi bir seçenek mi? Bu uyarılar Eclipse kapatmak istemiyorum.
Koda gelmeden önce, daha basit, ama hala provoke uyarılar vardı:
HashMap getItems(javax.servlet.http.HttpSession session) {
HashMap theHash = (HashMap)session.getAttribute("attributeKey");
return theHash;
}
Sorun uyarı alırsın karma kullanmaya çalıştığınız zaman başka yerdeydi:
HashMap items = getItems(session);
items.put("this", "that");
Type safety: The method put(Object, Object) belongs to the raw type HashMap. References to generic type HashMap<K,V> should be parameterized.
CEVAP
Açık cevap, tabii ki, denetlenmeyen da oyuncu değildir.
Eğer çok gerekliyse, o zaman en azından @SuppressWarnings
açıklama kapsamını sınırlamaya çalışın. Javadocs, onun göre yerel değişkenler olabilir; bu şekilde, hatta tüm yöntem etkilemez.
Örnek:
@SuppressWarnings("unchecked")
Map<String, String> myMap = (Map<String, String>) deserializeMap();
Map
gerçekten 12 ** genel parametreleri var olup olmadığını belirlemek için bir yolu yoktur. Parametreleri olması gerektiğini önceden bilmek (veya ClassCastException
gittiğinde öğrenirsin) gerekir. Bu kod derleyici güvenli olup olmamasına imkan yok, çünkü bir uyarı oluşturur nedeni budur.
MVC, nasıl bir dize neden iade edeyim ...
Güvenlik türü: Kontrolsüz dökme...
Özel kaynak dosyaları tüm uyarıları ba...
Nasıl bir Arayüz ve Soyut bir sınıf ar...
Nasıl tamir&; türü ihtiyaç Listesi ifa...