본문 바로가기
Programming/TroubleShooting

오류 메시지: cannot invoke equals(String) on the primitive type char

by 기도메타 2024. 10. 3.

작업하고 있던 jsp 파일에서 해당 구문에 대한 오류가 발생했다. 

if("S".equals(c_mode)){
	dataMap.put("brno", brno_20202_0);
}

java 부분이며, 오류 내용은 다음과 같다.

"cannot invoke equals(String) ont the primitive type char"
즉, java에서 char 자료형과 관련된 잘못된 메서드 호출로 인해서 발생하는 문제라 한다. 

char는 원시 타입 자료형으로 객체가 아니라서 equals()와 같은 메서드를 사용할 수가 없고 
equals()는 객체의 값 비교를 위한 메서드이므로 문자열(String)이나 기타 객체를 비교할 때 사용해야 한다고 한다.

근데 "c_mode" 를 선언할 때 String c_mode 로 선언하여 값을 받아왔는데 이러한 에러가 걸리는 것이 이해가 잘 안된다.

고민은 더 해봐야 할 것 같으나, 급히 문제 해결을 우선해야 했기에 다음과 같이 해결을 했다. 

if(String.valueOf(c_mode).equals("S")){
	dataMap.put("brno", brno_20202_0)
 }

String.valueOf()를 통해 해당 값을 문자열로 변환하여 equals()메서드를 사용할 수 있게 했고 문제가 해결됐다. 

 

반응형