인프런 커뮤니티 질문&답변

강프로그래머님의 프로필 이미지
강프로그래머

작성한 질문수

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

Long 타입 테스트

equals와 longValue 관련 질문드립니다

작성

·

205

·

수정됨

0

[질문]

제가 담당했던 업무에서는 Long 값을 비교하는 일이 거의 없어서 이 챕터에서 생각을 못 했었던 부분을 알게 되어 좋았습니다.

관련 자료를 찾아보다가 equals 메서드에서는 Long 타입일 경우 .longValue();로 체크하는 로직을 보게되었습니다.

 

public boolean equals(Object obj) {
    if (obj instanceof Long) {
        return value == ((Long)obj).longValue();
    }
    return false;
}

 

은행권 같은 실무에서는 equals와 longValue 둘이 어떻게 사용하는지 궁금합니다.

 

[참고 자료] 

https://www.baeldung.com/java-compare-long-values

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
equals 메서드와 longValueLong 타입의 객체를 다룰 때 사용하게 됩니다. Java에서 Long 타입은 객체이기 때문에 == 연산자로 주소 값을 비교하는 것이 아니라 실제 저장된 값을 비교하기 위해 equalslongValue를 사용합니다. equals 메서드는 두 객체의 내용이 같은지 비교할 때 사용하며, longValue 메서드는 Long 객체를 기본 타입 long 값으로 변환할 때 사용합니다. 특히 금융권과 같은 실무에서는 동등성(equality)을 확실하게 비교하기 위해 이러한 방법을 사용하는 경우가 많으며, 오버플로우나 언더플로우 등을 방지하고 자료형의 크기가 다른 비교에서 정확한 결과를 얻고자 할 때 유용합니다.

그러면 실무에서는 equals 와 longValue 중에 어떤게 많이 쓰이는건가요???

상황에 따라서 다를까요!?

강프로그래머님의 프로필 이미지
강프로그래머

작성한 질문수

질문하기