유용한 클래스(1) - Objects class

2021. 12. 28. 13:36·자바/유용한 클래스들

1. java.util.Objects 클래스

- Object 클래스의 보조 클래스로 Math 클래스처럼 모든 메서드가 static이다.

 

- 객체 비교나 null 체크에 유용하다.

 

 

- 메서드들은 다음과 같다.

(1) static boolean isNull(Object obj)

: null이면 true, 아니면 false 반환

 

(2) static boolean nonNull(Object obj)

: isNull의 반대

 

(3) static <T> T requireNonNull(T obj) or (T obj, String message) or (T obj, Supplier<String> messageSupplier)

: 해당 객체가 널이 아니어야 하는 경우, 만약 널이면, NullPointerException을 발생

(두 번째 매개변수는 예외 메시지를 의미)

 

 

- 아래의 코드를 보고 이해하자.

 

(4) static int compare(Object a, Object b, Comparator c)

:  a와 b를 비교하는데 같으면 0, 크면 양수, 작으면 음수를 반환한다.

 

- Object 클래스에는 eqauls()만 있고, 대소비교를 위한 compare() 없었는데, Objects 클래스에는 등장하게 되었다.

 

 

- Comparator c의 역할은 두 객체를 비교하는데 사용할 비교 기준을 잡아준다. 아래의 코드를 보고 이해하자.

 

 

(5) static boolean equals(Object a, Object b)

- Objects 클래스에도 equals() 메서드가 있는 이유는 null 검사를 하지 않아도 되기 때문이다. 

 

- 어짜피 내부에서 null 검사를 하기 때문에, 조건식에 null을 판별안해도 된다.

 

 

(6) static boolean deepEquals(Object a, Object b)

: 이 메서드는 객체를 재귀적으로 비교하기 때문에 다차원 배열의 비교도 가능하다.

 

(7) static int hashCode(Object o) or static int hash(Object... values)

: 보통은 클래스에 선언된 인스턴스의 변수들의 hashCode()를 조합해서 반환하도록 오버라이딩 한다.

 

- 자세한 사항은 뒤에서 배울 것이다.

'자바 > 유용한 클래스들' 카테고리의 다른 글

유용한 클래스(6) - BigInteger class  (0) 2021.12.31
유용한 클래스(5) - StringTokenizer class  (0) 2021.12.31
유용한 클래스(4) - Scanner class  (0) 2021.12.30
유용한 클래스(3) - 정규식 - regex 패키지  (0) 2021.12.29
유용한 클래스(2) - Random class  (0) 2021.12.29
'자바/유용한 클래스들' 카테고리의 다른 글
  • 유용한 클래스(5) - StringTokenizer class
  • 유용한 클래스(4) - Scanner class
  • 유용한 클래스(3) - 정규식 - regex 패키지
  • 유용한 클래스(2) - Random class
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      불안정 정렬
      serializable
      Arrays
      자바 개념
      InputStream
      map()
      outputstream
      java.time 패키지
      코드트리
      람다식
      소켓 프로그래밍
      다형성
      ServerSocket
      알고스팟
      문자 기반 스트림
      역직렬화
      TCP 소켓 프로그래밍
      file
      제자리 정렬
      안드로이드 스튜디오
      스트림
      선택 정렬
      Collections Framework
      코딩트리조별과제
      코딩테스트
      java.lang패키지
      안정 정렬
      중간연산
      유용한 클래스
      snail
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    유용한 클래스(1) - Objects class
    상단으로

    티스토리툴바