Brise

[Java] 기본형(primitive type) 타입 배열과 래퍼 클래스(wrapper class)사이의 변환 본문

프로그램

[Java] 기본형(primitive type) 타입 배열과 래퍼 클래스(wrapper class)사이의 변환

naudhizb 2016. 5. 24. 19:31
반응형

 

자바에서는 (이상하게도) C언어와 매우 흡사한 기본형 타입과(int, char와 같은)

 

이를 객체화 하여 사용할 수 있는 wrapper class(Integer, Character)가 있다.

 

이 때, 기본형 à 래퍼 클래스 변환을 boxing이라고 하며, 그 반대를 unboxing이라고 한다.

 

유의 할 것은 단순 변수 하나를 변환할 때에는 변환이 변수의 메소드로 등록이 되어 있지만,

 

배열의 경우에는 변환이 메소드로 등록되어 있지 않아, 별도 레퍼런스를 찾아야 한다.

 

변환하는 과정은 다음과 같다.

 

final int[] original = new int[] { 1, 2, 3 };

final Integer[] wrappers = ArrayUtils.toObject(original);

final int[] primitivesAgain = ArrayUtils.toPrimitive(wrappers);

assert Arrays.equals(original, primitivesAgain);

 

.. 자바를 안쓰다 보니 어떻게 되는지 몰라 이런걸 찾아서 올리지만..

 

언어 자체가 좀 이상한 듯.. 이런걸 안 만들면 좋을텐데 말이다.

 

참고로 기본형 타입 변수를 변환하는 방법을 찾고 싶다면 'java boxing unboxing'과 같은 단어로 검색하면 많은 레퍼런스를 찾을 수 있다.

 

Reference

http://stackoverflow.com/questions/3770289/converting-array-of-primitives-to-array-of-containers-in-java

반응형
Comments