O Eclipse está me enviando um aviso do seguinte formulário:
Segurança de tipo: elenco não verificado de Object para HashMap
Isso é de uma chamada para uma API que eu não tenho controle sobre o que retorna Object:
HashMap<String, String> getItems(javax.servlet.http.HttpSession session) {
HashMap<String, String> theHash = (HashMap<String, String>)session.getAttribute("attributeKey");
return theHash;
}
Eu gostaria de evitar avisos do Eclipse, se possível, pois teoricamente eles indicam pelo menos um possível problema de código. Ainda não encontrei uma boa maneira de eliminar esta. Posso extrair a linha única envolvida em um método por si só e adicioná @SuppressWarnings("unchecked")
-lo, limitando assim o impacto de ter um bloco de código no qual ignoro os avisos. Alguma opção melhor? Não quero desativar esses avisos no Eclipse.
Antes de eu entrar no código, era mais simples, mas ainda provocava avisos:
HashMap getItems(javax.servlet.http.HttpSession session) {
HashMap theHash = (HashMap)session.getAttribute("attributeKey");
return theHash;
}
O problema estava em outro lugar quando você tentava usar o hash, recebia avisos:
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
ou até mesmo exemplos Class<T>
), para que você possa dar uma olhada e saber que é seguro.