Notice
Recent Posts
Recent Comments
Link
kimmgamjja
[Java] Exception>java.lang.NumberFormatException++Exception Message>For input string: "10000000000"++Stack Trace>java.lang.NumberFormatException: For input string: "10000000000" 본문
공부/Java
[Java] Exception>java.lang.NumberFormatException++Exception Message>For input string: "10000000000"++Stack Trace>java.lang.NumberFormatException: For input string: "10000000000"
인절미댕댕이 2025. 2. 14. 15:26728x90
기존 자바 소스
list = list.stream().sorted((o1, o2) -> Integer.valueOf(o1.get("NUMBER").toString()).compareTo(Integer.valueOf(o2.get("NUMBER").toString())) ).collect(Collectors.toList());
list 를 stream().sorted() 를 이용해 정렬해주려다가
Exception>java.lang.NumberFormatException++Exception Message>For input string: "10000000000"++Stack Trace>java.lang.NumberFormatException: For input string: "10000000000"
이러한 에러가 발생했다
원인을 찾아보니 NumberFormatException 은 Integer.valueOf() 메서드가 처리할 수 있는 범위를 초과하는 숫자를 변환하려고 할 때 발생한다고 한다. 즉 변환하려는 숫자가 너무 커서다.
( Integer 타입은 -2,147,483,648부터 2,147,483,647까지의 범위를 가질 수있다 )
그래서 Integer.valueOf() 메서드에서 Long.valueOf() 메서드로 바꿔주면 정상작동한다
list = list.stream().sorted((o1, o2) ->
Long.valueOf(o1.get("NUMBER").toString()).compareTo(Long.valueOf(o2.get("NUMBER").toString())) ).collect(Collectors.toList());
728x90
'공부 > Java' 카테고리의 다른 글
[Java] 2개 이상의 DB 연동 및 접속 (0) | 2025.02.28 |
---|---|
[Java] stream sorted(정렬), 람다 표현식 (1) | 2025.02.28 |
[Java] Collections.swap()으로 요소 위치 바꾸기 (0) | 2025.01.23 |
[Java] String.valueOf()와 Object.toString() (0) | 2025.01.23 |
[Java] 자바 스케줄링 Scheduling 하는 방법 (0) | 2025.01.23 |