🙈

⃝ 동글동글 ⃝

🪐ᐩ˖ 🍎

Java/기초

[Java 기초] Objects 클래스

JONG_UK 2023. 5. 19. 23:33
728x90
반응형
SMALL

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
반응형
LIST