JAVA
[JAVA] ~ cannot be cast to java.lang.Integer
codingD
2021. 11. 28. 13:09
주로 Map으로 받아서 가져올 때 발생하는 오류로, Map 담긴 값의 데이터 타입을 단순히 casting을 (Integer)로 진행하게 되면 발생한다.
그동안 만났던 Integer casting 오류
▶ java.math.BigDecimal cannotbe cast to java.lang.Integer
: BigDecimal을 Integer로 casting 하여 실패
▶ java.lang.Long cannotbe cast to java.lang.Integer
: Long을 Integer로 casting 하여 실패
해결 방법
▶ 변환하려는 오브젝트를 우선 String.valueOf 를 사용하여 String으로 변환 후 Integer.parseInt를 사용하여 Integer로 변환할 수 있다.
//오류 발생
int num = (Integer) map.get("bno");
//우선 해당 오브젝트를 String으로 변환한 후 Integer.parseInt
int num = Integer.parseInt(String.valueOf(map.get("bno")));
String.valueOf 참고 : https://ninearies.tistory.com/306?category=839101