Java 래퍼 클래스 이해하기: 타입, 변환 및 이점
Java 래퍼 클래스
이 튜토리얼에서는 예제와 함께 Java 래퍼 클래스를 학습합니다.
Java 래퍼 클래스는 기본 타입(int, char, float 등)을 해당하는 객체 표현으로 변환합니다.
8개의 기본 타입 각각에 전용 래퍼 클래스가 있습니다.
| 기본 타입 | 래퍼 클래스 |
|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
기본 타입을 래퍼 객체로 변환
valueOf() 메서드를 사용하여 기본 타입을 명시적으로 래퍼 객체로 변환합니다.
예제 1: 기본 타입을 래퍼 객체로
class Main { public static void main(String[] args) { int a = 5; double b = 5.65; Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) { System.out.println("Integer 객체가 생성되었습니다."); } if(bObj instanceof Double) { System.out.println("Double 객체가 생성되었습니다."); } } }
출력
Integer 객체가 생성되었습니다. Double 객체가 생성되었습니다.
위 코드는 valueOf()를 통한 명시적 변환을 보여줍니다. Java는 오토박싱(auto-boxing)도 지원하여 기본 타입을 암시적으로 래핑합니다:
int a = 5; Integer aObj = a; double b = 5.6; Double bObj = b;
오토박싱과 언박싱에 대한 자세한 내용은 전용 가이드를 참조하세요.
참고: Java 9 이전에는 생성자(예: new Integer(a))로 래퍼 객체를 생성할 수 있었으나, 이 방식은 더 이상 권장되지 않습니다(deprecated).
래퍼 객체를 기본 타입으로 변환
래퍼 객체에서 해당하는 …Value() 메서드를 호출하여 내부 기본 타입을 꺼냅니다.
예제 2: 래퍼 객체를 기본 타입으로
class Main { public static void main(String[] args) { Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("a의 값: " + a); System.out.println("b의 값: " + b); } }
출력
a의 값: 23 b의 값: 5.55
Java는 언박싱(unboxing)도 자동으로 수행합니다:
Integer aObj = Integer.valueOf(2); int a = aObj; Double bObj = Double.valueOf(5.55); double b = bObj;
자세한 내용은 오토박싱과 언박싱 문서를 참조하세요.
래퍼 클래스의 장점
참고: 기본 타입은 일반적으로 객체 대응 타입보다 효율적입니다. 성능이 중요한 경우에는 기본 타입을 사용하세요.