인프런 커뮤니티 질문&답변

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

김영한의 실전 자바 - 중급 1편

예외 처리 도입5 - finally

CompareTo 메서드

작성

·

148

0

1.String 클래스는 comparable 을 우리가 implements 하지 않아도 자동으로 상속을 받고 있는건가요?

 

  1. 다른 클래스들은 우리가 compareTo 메서드를 override 해야하지만 String 클래스는 기본적으로 override 되어 있어서 특별히 override 해야하지 않는 이상 이미 내장되어 있는 compareTo 메서드를 쓰면 되나요 ?

3. a.compareTo(b) == 0 일때 .equals(0) 이 아니라 == 을 사용하는 이유는 무엇인가요 ?

답변 1

0

안녕하세요. ghuhan18님, 공식 서포터즈 y2gcoder입니다.

String 클래스는 comparable 을 우리가 implements 하지 않아도 자동으로 상속을 받고 있는건가요?

=> 네 맞습니다!

직접 String 클래스로 가보시면 확인하실 수 있습니다:)

image

다른 클래스들은 우리가 compareTo 메서드를 override 해야하지만 String 클래스는 기본적으로 override 되어 있어서 특별히 override 해야하지 않는 이상 이미 내장되어 있는 compareTo 메서드를 쓰면 되나요 ?

=> 네 맞습니다. 특별한 기능이 필요하지 않은 이상 그대로 사용하시는 것을 권해드립니다 !

 

a.compareTo(b) == 0 일때 .equals(0) 이 아니라 == 을 사용하는 이유는 무엇인가요 ?

=> compareTo의 반환타입이 int 이고 기본형이기 때문에 == 을 사용해서 비교할 수 있기 때문입니다. equals()를 사용하면 compareTo의 반환값을 Integer 타입으로 오토 박싱을 해주게 되는데, 굳이 그럴 필요가 없습니다.

 

감사합니다.

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

질문하기