Recent Posts
Recent Comments
Link
06-30 12:53
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

java.util.Objects 클래스 본문

DEV&OPS/Java

java.util.Objects 클래스

ALEPH.GEM 2022. 4. 7. 14:39

Objects 

Object 클래스와 이름이 유사한 Objects 클래스는 static으로 객체를 다루기 위한 여러가지 메서드들을 지원합니다.

 

객체 비교  compare()

import java.util.Comparator;
import java.util.Objects;

public class CompareExample {

	public static void main(String[] args) {
		Student s1 = new Student(1);
		Student s2 = new Student(1);
		Student s3 = new Student(2);
		
		int result = Objects.compare(s1, s2, new StudentComparator());
		System.out.println(result);
		result = Objects.compare(s1, s3, new StudentComparator());
		System.out.println(result);

	}
	
	static class Student{
		int sno;
		Student(int sno){
			this.sno = sno;
		}
	}

	static class StudentComparator implements Comparator<Student>{

		@Override
		public int compare(Student o1, Student o2) {
			if(o1.sno < o2.sno) {
				return -1;
			}else if(o1.sno == o2.sno) {
				return 0;
			}else {
				return 1;
			}
		}

	}

}

실행결과

0
-1

 

equals(), deepEquals()

두 메소드 모두 객체를 비교하는 메소드 이지만, deepEquals()는 배열의 경우 항목 값까지 모두 비교하는 것이 차이점입니다.

특이한점은 null끼리 비교해도 두 메소드 모두 true를 리턴한다는 점입니다.

public class EqualsExample {

	public static void main(String[] args) {
		Integer o1 = 1000;
		Integer o2 = 1000;
		System.out.println(Objects.equals(o1, o2));
		System.out.println(Objects.equals(o1, null));
		System.out.println(Objects.equals(null, o2));
		System.out.println(Objects.equals(null, null));
		System.out.println(Objects.deepEquals(o1, o2) + "\n");
		
		Integer[] arr1 = {1, 2};
		Integer[] arr2 = {1, 2};
		System.out.println(Objects.equals(arr1, arr2));
		System.out.println(Objects.deepEquals(arr1, arr2));
		System.out.println(Objects.deepEquals(arr1, null));
		System.out.println(Objects.deepEquals(null, arr2));
		System.out.println(Objects.deepEquals(null, null));
	}
}

 

null 여부 조사

isNull(Object obj)는 obj가 null이면 true, null이 아니라면 false를 리턴합니다.

nonNull(Object obj)는 위의 경우와 반대로 리턴합니다.

public class NullExample {

	public static void main(String[] args) {
		String str1 = "aacii";
		String str2 = null;
        
		//not null이면 인수를 리턴, null이면 Exception 발생
		System.out.println(Objects.requireNonNull(str1));	
		
		try {
		String name = Objects.requireNonNull(str2);
		}catch(Exception e) {
			e.getMessage();
		}
	}

}

 

toString()

public class ToStringEx {

	public static void main(String[] args) {
		String str1 = "홍길동";
		String str2 = "";
		String str3 = null;
		System.out.println(Objects.toString(str1));
		System.out.println(Objects.toString(str2));
		System.out.println(Objects.toString(str3));
	}

}

 

 

 

 

 

 

728x90

'DEV&OPS > Java' 카테고리의 다른 글

JAVA String 처리  (0) 2022.04.11
System 클래스  (0) 2022.04.07
자바 API , Object 클래스  (0) 2022.04.07
예외 처리  (0) 2022.04.06
익명 객체  (0) 2022.04.05