Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

값 타입 비교 본문

인프런/[인프런] 자바ORM 표준 JPA 프로그래밍

값 타입 비교

Seung__ 2021. 8. 13. 21:39

1. 값 타입


  • 값 타입 : 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야 함.
  • 값이니까!
  • 그런데 객체 타입은 ==비교하면 false가 나옴..
int a = 10; 
int b = 10;

Address a = new Address(“서울시”) 
Address b = new Address(“서울시”)

 

2. 값 타입의 비교


  • 동일성(identity) 비교와 동등(equivalence)비교를 구분해서 사용해야 한다.
  • 동일성(identity) 비교 : 인스턴스의 참조값을 비교. == 비교
  • 동등(equivalence)비교 : 인스턴스 값을 비교. equals() 사용
  • 값 타입은 a.equals(b)를 사용해서 동등성 비교를 해야함!
  • 값 타입의  equals() 메서드를 적절하게 재정의 필요(주로 모든 필드 사용)
    • equals()의 기본이 ==비교이다. 따라서 그냥 쓰면 위와같이 Address비교하면 false.
    •  
    • public boolean equals(Object obj) { return (this == obj); }
    • override 어떻게 하지?
    •    @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);
          }
    • override 후에 Address 비교시 true가 나왔당.
    • address1 == address2 false
      address1 equals address2 : true

 

3. GitHub : 210813 값 타입 비교


 

GitHub - bsh6463/JPA

Contribute to bsh6463/JPA development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] 자바ORM 표준 JPA 프로그래밍' 카테고리의 다른 글

[예제] 값 타입 매핑  (0) 2021.08.14
값 타입  (0) 2021.08.13
값 타입과 불변 객체  (0) 2021.08.13
임베디드 타입  (0) 2021.08.12
기본 값 타입  (0) 2021.08.12
Comments