이슈 내용
Mysql의 BigDecimal 값을 Mybatis 쿼리를 통해 Object 형태로 조회해온 뒤, 자바단에서 Integer로 형변환 하려 할 때 아래과 같은 오류가 발생했다.
java.math.BigDecimal cannot be cast to java.lang.Integer
원인
자바 Map 클래스의 Get 메소드를 통해서 Object 타입의 값을 가져왔는데, 이 때 이 Object는 참조변수에 해당한다.
그러므로 Object 타입의 변수가 실제로 가르키는 값은 BigDecimal 타입인데, 해당 값을 Integer로 명시적 형변환을 진행하려고 하기 때문에 오류가 발생한 것 이었다.
BigDecimal과 Integer는 서로 상속관계에 있지 않은 클래스이므로 명시적 형변환을 진행할 수 없다.
해결 방법
아래와 같이 String 형으로 Object 타입을 형변환 한 뒤, parseInt 메소드로 형변환 하게끔 수정했다.
Integer.parseInt(String.valueOf(clcTarInfo.get("itemTotAm")))
'Trouble Shooting > Java' 카테고리의 다른 글
[Java] UnsupportedOperationException 에러 해결 (0) | 2022.07.20 |
---|