삶 가운데 남긴 기록 AACII.TISTORY.COM
java.util.Objects 클래스 본문
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 |