이클립스는 나에게 다음과 같은 형태의 경고를 주었다.
유형 안전 : Object에서 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>
눈에 띄고 안전하다는 것을 알 수 있습니다.