인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

hanul_kr님의 프로필 이미지
hanul_kr

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

박싱된 타입에 관해 질문있습니다.

작성

·

313

0

안녕하세요,  수강 중 궁금한 것이 생겨 질문 올립니다.

form 프로젝트의 hello.itemservice.domain.item의 Item.java를 보면

boolean이 아닌 Boolean을 사용하고 있는걸 발견했습니다.

혹시 웹 프로그래밍에서 중요한 의미가 있는걸까요?

항상 고맙습니다.

답변 2

2

해당 코드에서 Boolean을 사용하지 않으면 다음과 같은 상황이 발생한다고 합니다.

https://www.inflearn.com/questions/243014

hanul_kr님의 프로필 이미지
hanul_kr
질문자

고맙습니다

1

안녕하세요. hanul_kr 님, 공식 서포터즈 codesweaver 입니다.

기본 타입 (primitive type)을 객체화 한 클래스를 랩퍼 클래스(Wrapper class)라고 합니다. 이 랩퍼 클래스를 쓰는 이유는 여러가지가 있습니다.

1. 기본 타입에 없는 여러가지 메서드를 제공합니다.

-- Integer 같은 정수를 바이트로 읽기, 뒤집기 등등을 제공합니다. (실무에서 쓸일은 거의 없다고 보셔도..)

2. 래퍼 클래스는 객체이기 때문에 기본값으로 null 을 할당할 수 있습니다.

-- 클래스의 필드에 기본 타입을 사용할 경우 초기화가 0에 준하는 값으로 진행됩니다.

-- 그러나 래퍼 클래스로 생성하면 null 로 초기화가 진행됩니다. (이 부분이 편리할때가 있습니다)

3. 파라미터의 데이터 타입이 Object인데 기본 타입 값을 넘겨야 할 때..

-- 기본 타입 int 10을 어떤 함수의 파라미터로 넘기고 싶은데 그 함수의 파라미터 타입이 Object 만 받는다면 값을 넘길 방법이 없습니다. 그래서 int 를 객체인 Integer로 컴파일러가 변환하게 됩니다. (오토박싱)

 .

위와같은 이유로 래퍼 클래스를 사용합니다.

.

감사합니다.

hanul_kr님의 프로필 이미지
hanul_kr
질문자

고맙습니다!

hanul_kr님의 프로필 이미지
hanul_kr

작성한 질문수

질문하기