JAVA

Java의 Objects 클래스: 유용한 유틸리티 메서드

청춘고양이 2024. 6. 25. 13:49
반응형

Java의 Objects 클래스는 Java 7에서 도입된 유틸리티 클래스입니다. 이 클래스는 객체를 다루는 데 유용한 메서드들을 제공하여 개발자가 더 안전하고 간편하게 코드를 작성할 수 있도록 도와줍니다. 이번 글에서는 Objects 클래스의 주요 메서드들과 그 사용 예를 살펴보겠습니다.

1. equals(Object a, Object b)

이 메서드는 두 객체가 동일한지 여부를 확인합니다. 특히 null-safe 하다는 점이 큰 장점입니다. 두 객체 중 하나가 null인 경우에도 NullPointerException을 발생시키지 않고 동등성을 확인할 수 있습니다.

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String str1 = "hello";
        String str2 = "hello";
        String str3 = null;
        
        System.out.println(Objects.equals(str1, str2)); // true
        System.out.println(Objects.equals(str1, str3)); // false
    }
}

2. hash(Object... values)

여러 객체의 해시 코드를 결합하여 하나의 해시 코드를 생성합니다. 이를 통해 여러 필드를 포함한 객체의 고유한 해시 코드를 만들 수 있습니다.

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String name = "John";
        int age = 30;
        
        System.out.println(Objects.hash(name, age)); // 해시 코드 출력
    }
}

3. hashCode(Object obj)

객체의 해시 코드를 반환합니다. 객체가 null인 경우 0을 반환합니다. 이 메서드는 해시 기반 컬렉션 (예: HashMap, HashSet)에서 유용하게 사용됩니다.

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String str = "hello";
        String nullStr = null;
        
        System.out.println(Objects.hashCode(str));    // str의 해시 코드 출력
        System.out.println(Objects.hashCode(nullStr)); // 0 출력
    }
}

4. isNull(Object obj)

객체가 null인지 확인합니다. 이 메서드를 사용하면 null 체크를 더 간결하게 작성할 수 있습니다.

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String str = null;
        
        if (Objects.isNull(str)) {
            System.out.println("The string is null");
        }
    }
}

5. nonNull(Object obj)

객체가 null이 아닌지 확인합니다. null이 아닌지 확인할 때 유용합니다.

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String str = "hello";
        
        if (Objects.nonNull(str)) {
            System.out.println("The string is not null");
        }
    }
}

6. requireNonNull(T obj)

객체가 null이 아닌지 확인하고, null일 경우 NullPointerException을 발생시킵니다. 메서드 인자나 반환값이 null이 아닌지 보장할 때 사용합니다.

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String str = null;
        
        try {
            Objects.requireNonNull(str, "String cannot be null");
        } catch (NullPointerException e) {
            System.out.println(e.getMessage()); // "String cannot be null" 출력
        }
    }
}

7. toString(Object obj)

객체의 문자열 표현을 반환합니다. 객체가 null인 경우 "null"을 반환합니다. 이는 문자열 결합이나 출력에 유용합니다.

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String str = "hello";
        String nullStr = null;
        
        System.out.println(Objects.toString(str));    // "hello" 출력
        System.out.println(Objects.toString(nullStr)); // "null" 출력
    }
}

결론

Java의 Objects 클래스는 객체를 다룰 때 유용한 다양한 유틸리티 메서드들을 제공합니다. 이를 통해 코드의 가독성을 높이고, null 체크를 간편하게 할 수 있습니다. 위에서 설명한 주요 메서드들을 활용하여 더 안전하고 효율적인 코드를 작성해보세요.

반응형