float, double, null을 정상 값으로 취급하는 필드를 포함하는 서로 다른 2개의 class를 정의하고,
한 class만 equals를 정의하여 boolean List.contains(Object o)를 사용했을 때 어떻게 차이가 있는지 비교해 봅시다.
- 자바 버전에 따라 contains의 내부 동작이 다를 수 있으므로 List가 아닌 다른 자료구조를 사용하여도 무방합니다.
- 단, equals method는 어노테이션을 사용하지 않고 아래 규칙에 맞게 직접 구현해 봅시다.
1. == 연산자를 사용해 입력이 자기 자신의 참조인지 확인한다.
2. instansceof 연산자로 입력이 올바른 타입인지 확인한다.
3. 입력을 올바른 타입으로 형변환한다.
4. 입력 객체와 자기 자신의 대응되는 핵심 필드들이 모두 일치하는지 하나씩 검사한다.