Затмение дает мне предупреждение о следующей форме:
Безопасность типов: непроверенное приведение из объекта в 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.
enum
или даже экземпляры Class<T>
), чтобы вы могли взглянуть на него и знать, что это безопасно.