반응형
java.util.Objects클래스는 Object 클래스의 보조 클래스로 모든 메서드가 static이다.
객체의 비교나 널 체크에 유용하다.
Null Check
Object.isNull(null); // true
Object.nonNull(null); // false
- isNull(): 해당 객체가 널인지 확인해서 null이면 true를 반환하고 아니면 fasle를 반환함.
- nonNull(): isNull()과 반대로 null인지 확인해서 null이면 false 아니면 true를 반환함.
Object.requireNonNull(null, "NullPointException 발생시킴");
- requireNonNull() : 객체가 null이면, NullPointException 예외가 발생시킨다.
Compare()
static int compare(Object a, Object b, Comparator c)
compare() : 두 비교대상이 같으면 0, 크면 양수, 작으면 음수를 반환함.
equals(), deepEquals()
String[][] str2D = new String[][] {{"aaa", "bbb"}, {"AAA", "BBB"}};
String[][] str2D_2 = new String[][] {{"aaa", "bbb"}, {"AAA", "BBB"}};
Objects.equals(str2D, str2D_2); // false
Objects.deepEquals(str2D, str2D_2); // true
- equals() : Object에 있는 메서드와 다르게 Objects의 equals()는 null 검사를 하지 않아도 된다.
→ 메소드의 내부에서 a와 b의 널 검사를 하기 때문이다.
- deepEquals(): 말 그대로 깊은 비교이다. 이 메서드는 객체를 재귀적으로 비교하여 다차원 배열의 비교도 가능하다.
toString()
static int hashCode(Object o)
static int hash(Object o, String nullDefault)
- equals()는 null 검사를 한다.
- 두 번째 메소드 같은 경우 o가 null일 때, 대신 사용할 값을 지정 할 수 있다.
hashCode()
Objects.hashCode(null); // 0
- 내부적으로 null 검사를 한 뒤에 Object클래스의 hashCode()를 호출함.
- 대신 null일 때는 0을 반환함.
*참고서적
Java의 정석
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 정규식(Regular Expression) - java.util.regex 패키지 (0) | 2022.12.13 |
---|---|
[JAVA] Random 클래스 (0) | 2022.12.13 |
[JAVA] 예외 던지기(exception re-throwing) / 연결된 예외(chained exception) (0) | 2022.11.22 |
[JAVA] 사용자정의 예외 만들기 (0) | 2022.11.22 |
[JAVA] 자동 자원 반환 try-with-resources (0) | 2022.11.22 |