java.util.Objects클래스
: Object클래스의 보조 클래스로 Math클래스처럼 모든 메서드가 'static'이다.
: 객체의 비교나 'null check'에 유용
isNull()
: 해당 객체가 널인지 확인해서 null이면 true, 아니면 false 반환
nonNull()
: isNull()과 정확히 반대의 일을 한다.
static boolean isNull(Object obj)
static boolean nonNull(Object obj)
requireNonNull()
: 해당 객체가 널이 아니어야 하는 경우에 사용
: 객체가 널이면, NullPointerException을 발생
void setName(String name) {
if(obj==null) new NullPointerException("name must not be null.");
this.name = name;
}
// same
void setName(String name) {
this.name = Objects.requireNonNull(name,"name must not be null.");
}
Compare()
: 두 비교대상이 같으면 0, 크면 양수, 작으면 음수를 반환
static int compare(Object a, Object b, Comparator c)
equals()
: null검사를 하지 않아도 된다는 장점
deepEquals()
: 객체를 재귀적으로 비교하기 때문에 다차원 배열의 비교도 가능
String[][] str2D = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
System.out.println(Arrays.equals(str2D, str2D2)); // false
System.out.println(Arrays.deepEquals(str2D, str2D2)); // true
toString()
: 내부적으로 널 검사하는 것이 추가
static String toString(Object o)
static String toString(Object o, String nullDefault)
★ 두 번째 메서드는 o가 널일 때, 대신 사용할 값을 지정할 수 있음.
hashCode()
: 내부적으로 널 검사하는 것이 추가, 널 일때는 0을 반환
static int hashCode(Object o)
static int hash(Object... values)
★ static import문을 사용했음에도 불구하고 Object클래스의 메서드와 이름이 같은 것들은 충돌
▶ 클래스의 이름을 붙여줄 수밖에 없다.
'Language > java' 카테고리의 다른 글
[Java] 유용한 클래스(정규식 - java.util.regex 패키지) (0) | 2022.07.14 |
---|---|
[Java] 유용한 클래스(java.util.Random클래스) (0) | 2022.07.14 |
java.lang 패키지(래퍼 클래스) (0) | 2022.07.14 |
java.lang 패키지(Math 클래스) (0) | 2022.07.14 |
java.lang 패키지(StringBuffer, StringBuilder 클래스) (0) | 2022.07.14 |
댓글