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 |