티스토리 뷰
값 타입의 비교
예시
public class ValueMain {
public static void main(String[] args) {
int a = 10;
int b = 10;
System.out.println("a == b : " + (a==b)); // true 출력
Address address1 = new Address("seoul", "garosugil", "10000");
Address address2 = new Address("seoul", "garosugil", "10000");
System.out.println("address1 == address2 : " + (address1==address2));
}
}
실행 결과
값 타입의 비교 - 동일성 비교와 동등성 비교
그 전에
public class ValueMain {
public static void main(String[] args) {
int a = 10;
int b = 10;
System.out.println("a == b : " + (a==b)); // true 출력
Address address1 = new Address("seoul", "garosugil", "10000");
Address address2 = new Address("seoul", "garosugil", "10000");
System.out.println("address1 == address2 : " + (address1==address2));
System.out.println("address1 equals address2 : " + (address1.equals(address2))); //이렇게
}
}
실행 결과
왜?
아직 오버라이딩을 구현하지 않았기 때문에...
Address에 equals, hashCode 오버라이딩
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Address address = (Address) o;
return Objects.equals(city, address.city) && Objects.equals(street,
address.street) && Objects.equals(zipcode, address.zipcode);
}
@Override
public int hashCode() {
return Objects.hash(city, street, zipcode);
}
이제 다시 실행해보면
드디어 바뀌어 있음을 확인할 수 있음.
728x90
반응형
'[개발] - Spring > JPA 공부' 카테고리의 다른 글
실전 예제 6. 값 타입 매핑 (0) | 2023.08.28 |
---|---|
값 타입 컬렉션 (0) | 2023.08.27 |
값 타입과 불변 객체 (0) | 2023.08.26 |
임베디드 타입(복합 값 타입) (0) | 2023.08.26 |
기본 값 타입 (0) | 2023.08.26 |
Comments