본문 바로가기
[JAVA]/JAVA 기본

[JAVA] 오토박싱 & 언박싱 (Integer[] 타입으로 생성된 리스트에 int 타입의 데이터를 못 넣는 이유 )

by 황원용 2022. 9. 29.
728x90

오토박싱(auto boxing)

  • 원시 타입의 데이터를 해당 타입의 래퍼 클래스의 객체로 변환하는 것
  • JDK 1.5 이후에 자동으로 변환된다.
int n = 5;
Integer i = n;

 

오토언박싱(auto unboxing)

  • 래퍼클래스를 원시 타입으로 변환하는 것으로, 래퍼 클래스는 언박싱을 해야 산술 연산이 가능하다.
  • JDK 1.5 이후에 자동으로 변환된다.
Integer i = 5;
int n = i;

 

Integer[]로 생성된 리스트에 int 타입의 데이터를 넣지 못하는 이유

        // 리스트 생성
        ArrayList<Integer> intList = new ArrayList<>();
        ArrayList<Integer[]> intArrList = new ArrayList<>();

        // 변수 생성
        int a = 1;
        int[] b = {1, 2, 3};
        Integer[] c = {1, 2, 3};

        // 리스트에 요소 추가
        intList.add(a); // auto boxing이므로 자동 변환
        intArrList.add(b); // 배열은 auto boxing이 안되므로 오류 발생
        intArrList.add(c); // 정상
728x90

'[JAVA] > JAVA 기본' 카테고리의 다른 글

import 문, static import 문  (0) 2023.02.27
[JAVA] 다형성  (0) 2023.02.10
[JAVA] break 문과 continue 문  (0) 2022.09.28
[JAVA] 재귀 함수  (0) 2022.09.20
[JAVA] static 키워드  (1) 2022.09.19