초급의 끄적거림

[JAVA] ~ cannot be cast to java.lang.Integer 본문

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

Comments