작성
·
210
·
수정됨
0
[질문]
제가 담당했던 업무에서는 Long 값을 비교하는 일이 거의 없어서 이 챕터에서 생각을 못 했었던 부분을 알게 되어 좋았습니다.
관련 자료를 찾아보다가 equals 메서드에서는 Long 타입일 경우 .longValue();로 체크하는 로직을 보게되었습니다.
public boolean equals(Object obj) {
if (obj instanceof Long) {
return value == ((Long)obj).longValue();
}
return false;
}
은행권 같은 실무에서는 equals와 longValue 둘이 어떻게 사용하는지 궁금합니다.
[참고 자료]
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
equals
메서드와 longValue
는 Long
타입의 객체를 다룰 때 사용하게 됩니다. Java에서 Long
타입은 객체이기 때문에 ==
연산자로 주소 값을 비교하는 것이 아니라 실제 저장된 값을 비교하기 위해 equals
나 longValue
를 사용합니다. equals
메서드는 두 객체의 내용이 같은지 비교할 때 사용하며, longValue
메서드는 Long
객체를 기본 타입 long 값으로 변환할 때 사용합니다. 특히 금융권과 같은 실무에서는 동등성(equality)을 확실하게 비교하기 위해 이러한 방법을 사용하는 경우가 많으며, 오버플로우나 언더플로우 등을 방지하고 자료형의 크기가 다른 비교에서 정확한 결과를 얻고자 할 때 유용합니다.
그러면 실무에서는 equals 와 longValue 중에 어떤게 많이 쓰이는건가요???
상황에 따라서 다를까요!?