Note: xxx.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. | cs |
정상적(?)으로 컴파일 되었고, 실행도 정상적이지만 나타나는 경고.
보통 map, list, collection, class 등 캐스팅시에 명시적인 정의가 안되어 있을 경우 나타나지만,
어떤 타입이 올지 불명확한 상태에서의 캐스팅을 강제하는 것 역시 위 경고가 나타난다.
해당 코드를 확인하고 명확하게 수정해 주려면 아래 파라미터를 추가하고, 해당 파일을 지정하면 상세 로그가 나타난다.
> javac -Xlint:unchecked xxxxx.java | cs |
예를 들어, 아래처럼 타입을 명시하였더라도,
HashMap<String, Object> map = new HashMap<>(); List<String> list = new ArrayList<>(); | cs |
다음 코드에서 경고가 났을 때,
list = (List<String>) map.get("itemList"); | cs |
아래처럼 바꿔주면 경고를 막을 수 있다.
if (map.get("itemList") instanceof List) { List insertQuery = (List) map.get("queryList"); } | cs |
또는,
검증되지 않은 연산자 관련 경고를 무시해주는 아래 어노테이션을 사용해도 된다.
@SuppressWarnings("unchecked") | cs |
경고를 처리하지 않더라도 예외를 제외하고는 큰 문제가 없겠지만 그래도...
알아두면 좋다니~
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.