프로그래밍언어/Java

Type Boolean Integer to boolean integer 차이점 Java Wrapper형 과 Primitive형 언제 쓰면되나?

by 앵과장 2022. 5. 3. 07:44
반응형

안녕하세요 앵과장입니다.
벌써 2022년 봄지나가네요

그만큼 프로젝트 일정도 중간을 향해 달려가는중입니다.

한참 코드리뷰를 진행하고 있다보니 알고 있지만 다시한번 또 제목에서 언급한것처럼 기본형(Wrapper) 그리고 참조형(Primitive) 사용하는방법 언제쓰면 좋은지 정리 하도록 하겠습니다.


Wapper 타입
Primitive 타입
종류

Boolean boolean
Integer integer
Byte byte
Short short
Long long
Float float
Double double
Character character

Boxing UnBoxing 에 대해서 많은 부분 설명을 하고 있는데
사실 개발진행하면 박싱 언방식보다는 좀더 용도에 초점을 맞춰서 설명하는게 실용성에서 고민을 해보도록 하겠습니다.

Boolean 과 boolean 어떤것을 써야하나요?

Boolean 은 Wapper class입니다.
Null, true, false 3가지 Value를 가질수 있습니다.

boolran의 경우 테스트코드를 짜보면 아시겠지만 Null은 허용하지 않고 true, false값 2가지를 허용하며 기본값은 false입니다.

보시는것처럼 용도에 맞게 사용해야합니다.

Integer  와 int 의 어떤것을 써야하나요?

Integer 는 Wapper class입니다.
Null 그리고 숫자형 타입 Value를 가질수 있습니다.

int 는 0은 기본값이며 Null을 허용하지 않습니다.

Wapper 와 Primitive 타입을 명확히 이해하고 개발의 목적에 맞는 타입을 주로 사용하면되기때문에 박싱 언박싱 보다는 어떤 타입과 용도를 위해사용하는지 인지하는것이 중요합니다.



제네릭을 사용해야할경우에는 기본형 사용이 불가하기 땜 문에 Wapper Class 를 사용해야합니다.

User class DTO에 해당하는 Request
public class UserRequest {
    private Long userId;
    private Boolean status;
    private Integer age;
}

위처럼 Wapper class를 만들수 있는데
특정 필드에 기본값을 넣고 NPE(NullPointException)를 피하고 싶다면 Primitive 타입을 사용하시는 것을 추천드립니다.

public class UserRequest {
    private long userId;
    private boolean status;
    private integer age;
}


저도 그냥 막연히 알고는 있었지만 코드리뷰 하기전에는 그냥지나간 부분들이 많이 있는데 서비스 회사이후에는 항상 이런부분들까지도 고려하고 있는것 같습니다.


얼마전 코드리뷰에 대한 유익한 영상을 본거같아 공유드립니다.

https://youtu.be/ssDMIcPBqUE


항상 즐거운 하루되세요!!