Objects클래스
object클래스의 보조 클래스로 모든 메서드가 'static'이다.
isNull(), notNull(), requireNonNull()
isNull()과 notNull()은 해당 객체가 null인지 아닌지를 boolean값으로 반환한다.
requireNonNull()은 해당 객체가 널이면, NullPointerException을 발생시킨다. 두번째 매개변수로 지정하는 문자열은 예외 메시지가 된다.
void setName(String name){
if(name == null){
throw new NullPointerException("name must not be null.");
}
this.name = name;
}
변경 후
void setName(String name){
this.name = Objects.requireNonNull(name, "name must not be null.");
}
Compare()
compare()는 대소비교 메서드로, 두 비교대상이 같으면 0, 크면 양수, 작으면 음수를 반환한다.
compare(Object a, Object b, Comparator c)
Comparator는 추후 정리 예정
equals()
Objects의 equals()는 Object의 equals()와 다르게 null검사를 하지 않아도 된다.
if(a ! = null && a.equals(b){
//***
}
변경 후
if(Objects.equals(a,b){
//***
}
내부코드
public static boolean equals(Object a, Object b){
return (a==b) || (a != null && a.equals(b));
}
만약 a와 b가 둘다 null이면 참을 반환한다.
deepEquals()
2차원 문자열 배열을 비교할 때 사용된다.
String[][] str2d = new String[][] {{"aaa","bbb"} , {"AAA","BBB"}};
String[][] str2d2 = new String[][] {{"aaa","bbb"} , {"AAA","BBB"}};
Objects.deepEquals(str2d, str2d2); // true반환
// str2d와 str2d2가 문자열 리터럴들을 참조하는 형태기때문에 true가 반환
hashCode()
위와 마찬가지로 null 검사를 한 후 Object클래스의 hashCode() 호출.
널 일때는 0반환.
참조
'Java의 정석' 책
'Language > Java' 카테고리의 다른 글
[Java] 제네릭(Generic) (0) | 2022.03.11 |
---|---|
[Java] 정규식(Reualar Expression), 정규표현식(Regex) (0) | 2022.03.09 |
[Java] 래퍼(wrapper) 클래스 (0) | 2022.03.08 |
[Java] String, StringBuffer, StringBuilder 클래스 (0) | 2022.03.07 |
[Java] Object 클래스 (0) | 2022.03.07 |
댓글