[java] 객체기준으로 ==, equal차이, hashcode 쓰는 이유까지 이걸로 완벽히 끝내기


[java] 객체기준으로 ==, equal차이, hashcode 쓰는 이유까지  이걸로 완벽히 끝내기

==, equal 차이 우선 말하자면 차이가 없다 무슨말이냐면 equal 메소드 안에 ==으로 구현되어 있다는 말이다. ==, 오버라이드 하기전 equal은 차이가 없다 (int, 상수일경우는 값 그대로를 비교하고 , 객체는 주소값을 비교한다) 그럼 문제다. Person p1=new Person("홍길동", 10) Person p2=new Person("홍길동", 10) p1==p2 는 ? False가 나온다 p1.equal(p2) 는 ? False가 나온다 override equal 이제는 주소값이 아니라 , 안에 있는 필드 값으로 비교를 하고 싶다 . 이제 override를 써야 한다. 디폴트는 주소값을 비교하는 것이니까 나는 안에 있는 필드값으로 같은지를 비교하고 싶은거니깐!! 그래서 아래와 같다 . public boolean equals(Object o) { if(o == null) { return false; } if (o == this) { return true; } if...


#compare #equal #EqualsBuilder #hashcode #HashCodeBuilder #java #override

원문링크 : [java] 객체기준으로 ==, equal차이, hashcode 쓰는 이유까지 이걸로 완벽히 끝내기