java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
IT 개발/에러
2022. 3. 17. 14:43
casting 형 변환 오류로 대게 잘못된 형변환를 하려고 할 경우에 발생한다. 내 경우에는 hashMap에 담은 Object를 String으로 형 변환하려 (String)map.get("fruit")을 사용했을 때 해당 오류를 마주했다.
hashMap에 담긴 Integer Object를 String으로 변경하고자 할 땐 String.valueOf(map.get("fruit"))을 사용해야 형변환 오류 없이 안정적으로 필요한 값을 뽑을 수 있다.
해당 내용에 대한 자세한 설명이 궁금해서 인터넷 및 Java API 문서를 보고 확인했더니 아래의 내용을 확인할 수 있었다.
(String)을 사용하려는 object가 String인 경우에만 casting이 가능하면 String이 아닐 경우 ClassCastException이 발생한다.
Object sumQty = new Integer(9);
String str = (String) sumQty; // ClassCastException 발생
String object의 경우 오류없이 casting이 정상적으로 진행되어 오류가 발생하지 않는다.
Object reallyAString = "today";
String str = (String) reallyAString;
String.valueOf()는 String으로 변경하려는 대상의 타입이 무엇이든지 상관없이 String형으로 변경해준다. String.valueOf()는 원시타입(primitive type), object (Integer, Boolean, char 등 해당 Object의 toString()을 사용) 둘 다 다룰 수 있습니다.
반응형
'IT 개발 > 에러' 카테고리의 다른 글
오류 모음 (0) | 2023.02.13 |
---|---|
[프로젝트 설정 오류] (0) | 2022.08.08 |
[데이터베이스] Error querying database. Cause: java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName. (0) | 2022.03.08 |
[데이터베이스] log4jdbc 로그 출력하기 - resultsettable이 정상적으로 로그에 나오지 않을 때 (0) | 2022.03.04 |
맥 인텔리제이 마우스 클릭 에러 Mac IntelliJ mouse click error (3) | 2022.02.09 |