반응형
이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서
Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다.
#
Any 를 상속한 모든 object 는 잘 정의된 아래 3개 규칙을 지켜야 한다.
- equals
- hashCode
- toString
Equality
#
object 같은 type 이거나 subtype 일 때만 equality operator 를 사용할 수 있다.
Why do we need equals?
The contract of equals
#
- Reflexive ( x.equals(x) == true )
- Symmetric ( x.equals(y) == y.equals(x) )
- Transitive ( x.equals(y) & y.equals(z) == true 면 x.equals(z) == true )
- Consistent ( x.equals(y) == x.equals(y) )
- Never equal to null ( x.equals(null) == false )
Problem with equals in URL
#
jeva.net.URL 은 equals 결과를 network 에 의존적인, 실제 연결되는 IP 값을 기준으로 판단하다.
이는 문제가 많으므로.. java.net.URI 사용이 권장된다.
Implementing equals
#
특별한 이유가 없다면 data class 를 사용하자.
끝
반응형
댓글