ㅅㅇ
Wrapper Class 이란? 본문
1. Wrapper Class 이란 ?
기본 자료형(Primitive data type)에 대한 객체 표현을 Wrapper class라고 합니다.
2. Boxing 이란?
기본 자료형 → Wrapper class로 변환하는 것
3. UnBoxing
Wrapper class → 기본 자료형으로 변환하는 것
4. 기본 타입과 다른 Wrapper Class 자료형만의 특징
이 특징들을 생각하여, 왜 언제 Boxing 하는지 이해하자
- 불변 객체로 한 번 할당된 객체는 값이 변하지 않는다. ( 수정이나 값을 변경할 때,객체의 값을 변경하는 것이 아니라, 새로운 값의 객체를 new 생성애서 반환하는 하는 것으로 착각하지 말기 )
- Null 값을 받을 수 있다.
- toString() 메소드를 사용하여 문자열로 쉽게 변환이 가능하다.
- 비교 연산이 불가하다.
cf) String의 경우
- String은 래퍼 클래스이나, 리터럴 방식으로 생성될 시에는 비교 연산이 가능합니다. ( String a = “1000”; )
- 객체 생성 방식의 경우엔 주소 값이 달라 == 비교가 안됩니다. ( String a = new String(“1000”) )
* 아래 링크에서 자세히 정리
5. Wrapper Class 를 사용하는 경우
- > null 이 필요한 경우
Wrapper Class 로 기본 데이터 타입을 객체로 Boxing 해주면,
객체 개념으로 데이터를 관리할 수 있고, null 값 처리가 용이하다.
- 주의점
Wrapper Class 데이터 값은 null을 받을 수 있다는 가능성이 생기기 때문에
사용자로부터 들어온 값이 Null 인지를 파악할 수 없다. 그래서 Null 체크 코드를 추가해줘야 해야 한다.
그래서 래퍼클래스는 Null을 꼭 다뤄야 할 때 사용하는 것이 좋다.
- DB 테이블에 null이 들어올 때
DB 테이블에 Null이 들어갈 수 가능성이 있는 경우 사용됩니다.
ex) DB에서 자료형이 정수형이지만 null 값이 필요할 경우 Integer를 사용
하지만, null을 허용하지 않는 컬럼일 경우는, 기본 데이터 타입으로 지정해야 한다. - request로 null이 들어올 때
이때 또한 Requeset 들어오는 값이 Null일 수 있기에 WrapperClass로 받아 줄 수 있긴 함.
하지만, request같은 경우에는 애초에 @Validate, @NotNull같은 거로, 사전에 차단헤야 한다.
따라서, Null을 바로바로 파악할 수 있는 (NullPointException을 발생하게 하여) 기본 타입을 잘 사용
'SW_STUDY > Java' 카테고리의 다른 글
List 생성 두 가지 방법 new ArrayList<> vs Arrays.asList() (0) | 2023.06.26 |
---|---|
String 리터럴 생성 방식 VS String 객체 생성 방식 (0) | 2023.06.26 |
java 개요 & 변수 & 객체 생성 및 메소드 구현 (0) | 2022.07.26 |
JDK & eclipse 설치 및 환경변수 설정 (0) | 2022.07.25 |