728x90

 

※ 다음 코드가 있을 때 발생하는 이슈

int totalCnt = 0;
List<Map<String, Object>> list = TempService.selectTempList(paras);

if(list.size() > 0) {
    totalCnt = (int) list.get(0).get("total");
{

1) Cannot cast 'java.math.BigDecimal' to 'int' 에러 발생

 - totalCnt의 리스트 전체 개수를 할당할 때 cast에러가 발생한다. 이유는 'list.get(0).get("total");'가 BigDecimal 타입이기 때문이다.

 

※ 해결방법

int totalCnt = 0;
List<Map<String, Object>> list = TempService.selectTempList(paras);

if(list.size() > 0) {
    totalCnt = ((BigDecimal) list.get(0).get("total")).intValue();
{

 - 설명 : 이렇게 BigDecimal로 객체를 강제변환 한 후 intValue로 int로 형변환 한다.

 - 문법 : ((BigDecimal) list.get(0).get("total")).intValue();

728x90
TOP