평소처럼 차분한 근무 시간.
편집할 수 있는 매개변수를 추가해서 정상적으로 편집했습니다.
코드를 한 줄 바꾸고 나서 매개변수 이름만 신경쓰면 에러 보고 안 할 자신이 있어서 배포를 했더니 이런 에러가 떴다.

익숙한 잘못된 이름입니다.
문자열이지만 왜 int로 변경합니까?
JS처럼 타입 변환을 할 수 있다면 좋겠지만 JAVA는 손이 더 많이 가는 친구다.
유형 변환이란 무엇입니까?
변수 또는 리터럴의 유형을 다른 유형으로 변환하여 다른 유형 간에 작업을 수행할 때 해당 유형과 일치시킵니다.
문자열, int 형 변환 방법
– 문자열을 int로
문자열 ex_str = “123”;
int ex_int = Integer.parseInt(ex_str);– 정수를 문자열로
정수 ex_int = 123;
String ex_str = Integer.toString(ex_int);
또는
String ex_str = String.valueOf(ex_int);
또는
문자열 ex_str = ex_int + “”;
변환은 다음과 같이 수행할 수 있습니다.
가격 관련 파라미터라 int로 받을 줄 알았는데 ‘90,000’과 같은 가격 형식으로 값이 들어옵니다.
물론 문자열 형태로 제공됩니다.
내가 먼저 처리했다.
int price = jsonMap.get("price_format") == null ? 0 : (int) jsonMap.get("price_format");
이와 같이 값을 받으면 null이면 0을, null이 아니면 price_format의 값을 얻는다.
그런데 price_format이 문자열로 전달되는데 이런 식으로 typecasting을 하면 위와 같은 오류가 발생한다.
총 3개의 파트가 있으니 실수하지 않도록 주의하세요.
1. null 또는 비어 있지 않은 경우에만 값을 삽입하십시오.
2. String을 int로 변환하여 값을 int로 받습니다.
3. 가격 형식 때문에 입력된 쉼표(,)를 제거합니다.
if(!"".equals(price_format) && price_format!=null) {
jsonMap.put("price_format", Integer.parseInt( price_format.replaceAll(",", "") ));
}
이렇게 수정합니다.
Integer.parseInt는 문자열을 int 유형으로 변환하는 데 사용되며, replaceAll() 함수는 쉼표에 사용됩니다.
까다로운 부분은 아니지만 그냥 잊어버리면 한 번 놓치고 에러를 내뱉는 녀석이 있으니 확인하고 넘어갑시다.
String int 외에도 변환하는 방법에 대해 알아보겠습니다.
그 다음에는 형 변환이 헷갈릴 때 와서 볼 수 있도록 메모만 정리했습니다.
| 전환하다 | 공식 | 결과 |
| 문자에 대한 정수 | (문자) 65 | ‘ㅏ’ |
| 문자를 정수로 | (정수)A | 65 |
| 부동 소수점 숫자 | (정수)1.6f | 하나 |
| int float | (부동) 10 | 10.0f |
자동 유형 변환(암시적 유형 변환)
– 데이터가 손실되지 않는 한 자동 유형 변환.
byte(1) > short(2) > char(2) > int(4) > long(8) > float(4) > double(8)
조건부이지만 유형을 자동으로 변환하는 Java를 모르겠습니다.
| 전환하다 | 공식 |
| 두 배가 될 문자열 | Double.valueOf(str) |
| 띄울 문자열 | Float.valueOf(str) |
| 너무 긴 문자열 | Long.parseLoing(str) |
| 문자열 짧은 | Short.parseShort(str) |
정수<-->실수에 대한 유형 변환에는 ‘(int)’ 접두사가 붙습니다.(내 실수 사례)
char는 int와 함께 사용할 수 있습니다.

이 ASCII 코드 테이블의 숫자는 별도의 유형 변환 없이 char 및 int에서 연산할 수 있습니다.
char a = 97;
int b = a + 100;
System.out.println(b) //197