SSinsa
4. 오토박싱과 언박싱 이해하기 본문
(시작하기 전에 '이것이 자바다'를 통해 'Wrapper 클래스'를 공부하였다 - 출처 이것이 자바다 1권)
# 박싱과 언박싱
Boxing - 기본 타입의 값을 포장 객체로 만드는 과정
->방법 : Integer obj = Integer.valueOf(1000); //기본타입의 값
Integer obj = Integer.valueOf("1000"); //문자열
Unboxing - 포장 객체에서 기본 타입의 값을 얻어내는 과정
->방법 : 기본타입명 + Value()

# 자동박싱과 언박싱
자동박싱 - 포장클래스 타입에 기본값이 대입될 경우에 발생
자동언박싱 - 기본타입에 포장객체가 대입될 경우에 발생

그렇다면 이제 질문으로 들어가서~
NullPointerException 이 발생했을 때 원시 타입에 접근할 수 있는가?

위의 코드를 보면
try 첫줄에 final int newIntValue = methodWhichMayReturnNull (intObject); 에서
intObject 의 1이라는 값이 담긴다. 이때 1은 Integer 타입으로
newIntValue 가 int이기에 타입 충돌이 있다.
하지만, 자동으로 언박싱이 되면서 1이 정상적으로 출력된다

return 타입이 null일 때도 자동으로 int로 언박싱되지만
null 값이 반환되었기 때문에 NPE가 발생한다. (why? 원시타입에는 null값을 할당할 수 없다)
따라서, 위 질문의 답은 "NO"
'Java > Java Programming' 카테고리의 다른 글
| 9. JUnit으로 테스팅하기 (0) | 2020.02.18 |
|---|---|
| 5. 어노테이션 이용하기 (0) | 2020.02.05 |
| 3. 제네릭 이해하기 (0) | 2020.01.15 |
| 2. String 이용하기 (0) | 2020.01.15 |
| 1. 배열과 리스트의 관계 (0) | 2020.01.15 |