Eclipse дает мне предупреждение о следующей форме:
Тип безопасности: снятый снимок с объекта на HashMap
Это от вызова API, для которого у меня нет контроля над возвратом Object:
HashMap<String, String> getItems(javax.servlet.http.HttpSession session) {
HashMap<String, String> theHash = (HashMap<String, String>)session.getAttribute("attributeKey");
return theHash;
}
Я бы хотел избежать предупреждений Eclipse, если это возможно, поскольку теоретически они указывают, по крайней мере, на потенциальную проблему кода. Тем не менее, я еще не нашел хороший способ устранить эту проблему. Я могу извлечь единственную строку, связанную с методом самостоятельно, и добавить @SuppressWarnings("unchecked")
к этому методу, таким образом ограничивая влияние наличия блока кода, где я игнорирую предупреждения. Какие-нибудь лучшие варианты? Я не хочу отключать эти предупреждения в Eclipse.
До того, как я пришел к коду, он был проще, но все же вызывал предупреждения:
HashMap getItems(javax.servlet.http.HttpSession session) {
HashMap theHash = (HashMap)session.getAttribute("attributeKey");
return theHash;
}
Проблема была в другом месте, когда вы пытались использовать хэш, который вы получили бы предупреждения:
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.