728x90
반응형
Objects 클래스
Object 클래스의 보조 클래스이며, 모든 메서드가 'static'이다.
객체의 비교나 null 체크에 유용하다.
isNull(), nonNull() 메서드로 객체가 null인지 아닌지 체크할 수 있다.
requireNonNull() 메서드는 해당 객체가 null이 아니어야 하는 경우에 사용한다.
Object 클래스에는 두 객체의 등가비교를 위한 equals() 메서드만 있고, 대소비교를 위한 compare() 메서드는 존재하지 않는다. 따라서 Objects 클래스에 는 compare() 메서드가 존재하기 떄문에 Objects를 사용한다.
Objects 클래스에도 equals() 메서드가 존재하는데 Objects.equals() 메서드는 매개변수의 값이 null인지 확인할 필요가 없다. 그 이유는 Objects.equals() 메서드 내부에서 null 검사를 진행하기 때문이다.
import java.util.*;
import static java.util.Objects.*;
public class ObjectsTest {
public static void main(String[] args) {
String[][] str2D = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
String[][] str2D_2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};
System.out.print("str2D ={");
for(String[] tmp : str2D)
System.out.print(Arrays.toString(tmp));
System.out.println("}");
System.out.print("str2D_2={");
for(String[] tmp : str2D_2)
System.out.print(Arrays.toString(tmp));
System.out.println("}");
System.out.println("equals(str2D, str2D_2)="+Objects.equals(str2D, str2D_2));
System.out.println("deepEquals(str2D, str2D_2)="+Objects.deepEquals(str2D, str2D_2));
System.out.println("isNull(null) ="+isNull(null));
System.out.println("nonNull(null)="+nonNull(null));
System.out.println("hashCode(null)="+Objects.hashCode(null));
System.out.println("toString(null)="+Objects.toString(null));
System.out.println("toString(null, \"\")="+Objects.toString(null, ""));
// 문자를 비교할 때 대소구별을 하지 않기 위해 사용
Comparator c = String.CASE_INSENSITIVE_ORDER;
System.out.println("compare(\"aa\",\"bb\")="+compare("aa","bb",c));
System.out.println("compare(\"bb\",\"aa\")="+compare("bb","aa",c));
System.out.println("compare(\"ab\",\"AB\")="+compare("ab","AB",c));
}
}
728x90
반응형
'Java > 기초' 카테고리의 다른 글
[Java 기초] 정규식(Regular Expression) regex 패키지 (0) | 2023.05.20 |
---|---|
[Java 기초] Random 클래스 (0) | 2023.05.20 |
[Java 기초] Wrapper(래퍼) 클래스 (1) | 2023.05.19 |
[Java 기초] Scanner(스캐너)에 대하여 (0) | 2023.05.19 |
[Java 기초] 상속(Inheritance)과 오버라이딩(Overriding) (0) | 2023.05.12 |