Java/Java 기본
[간단] id 의 타입을 long 이 아니라 굳이 Long 으로 주는 이유
김관현
2024. 8. 19. 23:58
@Data
public class Member {
private Long id;
private String name;
private int age;
}
우리가 자주 마주하는 코드들이다
그런데 우리가 자주 보는 이 코드들이 항상 id 값(보통 PK) 의 타입을 long 이 아니라 Long 으로 주는 것을 알 수 있다
왜 굳이 Wrapper 클래스인 Long을 사용하는 걸까
그에 대한 이유는 null을 사용할 수 있기 때문이다
만약 id 필드의 타입을 long 타입으로 설정한 경우 id 의 default value 는 0이 된다
id 의 기본값이 0 이라는 것은 문제를 초래한다
id 에 '값을 선언하지 않아서 0인 경우'와 '값을 0으로 선언한 경우' 를 구분할 수 없게 된다
하지만 Wrapper 타입을 사용하게 되면(Long 타입을 사용하게 되면) 값을 선언하지 않은 경우에는 null 값이 들어가있으므로 값을 선언하지 않은 경우와 0을 선언한 경우를 구분할 수 있게 된다
결론은,
null 값과 0을 구분해야 하는 경우는 Wrapper 클래스로 선언하자