Wrapper 클래스를 쓰는 게 맞을까, Primitive 클래스를 쓰는 게 맞을까?

ggyu_55·2023년 8월 20일
0

take A Sip

목록 보기
8/8

문득 findById를 할 때 Long id를 인자로 전달하는 게 맞을까, long id를 인자로 전달하는게 맞을까? 하는 궁금증이 들었다.


Wrapper 클래스 (예: Integer, Long, Double 등)는 객체 타입이므로 다음과 같은 장점이 있다.

  1. Null 허용: 값이 없거나 미정의된 상태를 표현할 수 있음.

  2. 객체 지향적 특성: 메서드와 함께 사용할 수 있으며, 컬렉션과 같은 제네릭 타입과 함께 사용할 수 있음

  3. 오토박싱: 자동으로 primitive 타입과 wrapper 타입 간의 변환을 지원

단점으로는 성능과 메모리 소모가 더 클 수 있다는 거

Primitive 타입 (예: int, long, double 등)은 다음과 같은 장점이 있다.

  1. 성능: Primitive 타입은 메모리를 더 효율적으로 사용하며, 연산이 더 빠르다

  2. 간결성: 단순한 값의 표현에 적합

  3. Null 불가능: 항상 값을 가지므로 null 체크가 필요 없다.

단점으로는 객체 지향적인 동작을 수행할 수 없고, 값의 미정의 상태를 표현할 수 없다


그러니까,

Long은 데이터베이스에서 해당 ID를 찾을 수 없을 경우 null을 반환하고 싶을 때 사용하고,

long은 해당 ID 값이 그냥 무조건 있어야 한다.

음... 어떤게 좋을지 고민은 더 필요한 것 같다.

0개의 댓글