본문 바로가기
SOFTWARE/ERROR

[Java] error: char cannot be dereferenced

by eooa 2023. 4. 2.
반응형

알고리즘 풀다가 만난 에러

 

Leetcode에서 알고리즘을 풀다가 오류가 났다.

char cannot be dereferenced

 

보통 업무를 할 땐 char type을 쓸 상황이 별로 없었다.

대부분 1글자만 받을 때도 String을 많이 사용하니까.

 

그리고 String을 비교할 땐 equals를 많이 썼는데, equals를 char 비교용으로 사용하려고 하니까 에러가 났다.

 

알게 된 점

char는 primitive 데이터 타입이어서 객체 또는 다른 함수 기능이나 속성이 없다.

내가 사용했던 equals()는 String 클래스를 위한 함수여서 char에 사용하려 했더니 오류가 난 것이었다.

 

이 오류를 해결하기 위해서는 char 대신 Character를 사용하거나,

char 타입일 때에도 가능한 비교방법을 사용하면 된다.

 

Character를 사용하려면 타입 변환을 해줘야 하는데,

char ch = 'A';
if(Character.toString(ch).equals('B')){
}

위와 같이 타입을 변환해 주면 된다.

 

String 클래스 타입으로 변환하는 것도 가능한데,

char ch = 'A';
if(String.valueOf(ch).equals('B'){
}

위와 같이 변환해주면 된다.

 

Character 클래스를 안 쓰고 char를 비교할 땐 단순히 'A' == 'B' 의 연산자를 이용하면 된다.

반응형

댓글