클래스 멤버 변수에 왜 래퍼클래스를 사용할까?

구창회·2022년 10월 19일
0

자바 공부 중

목록 보기
2/10

제로베이스의 클래스와 객체 강의를 듣다가 가볍게 Animal 클래스를 만들어 봐라 라는 태스크가 주어졌고, 나는 가볍게? 수행했다.

그런데?

강사님께서는 Animal 클래스의 몸무게 변수를 Float weight 이라고 선언하지 않겠는가?

나는 그냥 float weight 이라고 선언해서 해결했다.

Float 가 float 의 래퍼클래스인것은 공부해서 알고 있었고, 래퍼클래스가 왜 존재하는 것인지도 훑어보긴 했는데 막상 이렇게 강사님이 코드를 작성해버리니깐 왜 저렇게 짰는지 아무런 감이 오지 않았다.
그래서 나름대로 그 이유를 구글링 해서 찾아보았다.

클래스 멤버변수에 wrapper class 를 사용하는 이유

내 심금을 울린 적절한 이유는 바로

DB 작성시 NullPointerExeption 을 방지하기 위해서이다.

가벼운 상식으로 원시타입(primitive type)에는 null을 값으로 넣을 수 없다! 라는 게 있다.
반면 래퍼클래스는 가능하다.

DB에서는 null 도 값으로 본다. 그렇기 때문에
DB 작성시 가령 여러 동물(class Animal)들의 스펙을 저장해야 할때,
동물의 몸무게가 비어있을 경우, 래퍼클래스라면 값이 null 로 저장되어 NullPointerException 이 발생하지 않는 반면 원시타입인 경우 값이 없기 때문에 위와 같은 NPE 오류가 발생한다고 한다.

아무래도 백엔드 개발자는 데이터를 다루는? 업무를 하다보니 데이터를 다루는 데 발생하는 에러들을 사전 방지하기 위해서 타입 선언도 신중하게 한다는 점을 알게 되었다 ㄷㄷ

그 외에도 원시타입과 달리 래퍼클래스는 다른 유용한 메소드도 제공한다는 점도 있다.

profile
백엔드 엔지니어 프로 지망생

0개의 댓글