기본형과 래퍼 클래스
자바에서 변수의 타입을 확인하는 방법은 Python과 같은 동적 언어와는 다르다. Python에서는 type() 함수를 사용하여 변수의 타입을 간단히 알 수 있다. 하지만 자바는 정적 타입 언어로, 컴파일 시 변수의 타입이 이미 결정되므로 별도의 타입 확인이 필요하지 않은 경우가 많다. 하지만 디버깅이나 특정 상황에서 변수의 타입을 확인해야 할 때도 있다.
특히, 자바에서 **기본형(primitive type)**과 **래퍼 클래스(wrapper class)**의 차이를 이해하고 타입을 확인하는 방법을 아는 것은 중요하다.
기본형(Primitive Type)의 타입 확인
자바에서 기본형은 객체가 아니므로 getClass() 메서드를 사용할 수 없다. 그러나 기본형을 래퍼 클래스로 박싱(Boxing)하면 타입 확인이 가능하다.
다음은 int 타입 변수를 예로 들어 설명한 코드다:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TypeCheckExample {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 사용자 입력을 받아 int로 변환
int N = Integer.parseInt(br.readLine());
// 기본형은 getClass() 사용 불가
System.out.println("기본형 N의 값: " + N);
// 래퍼 클래스(Integer)로 박싱하여 타입 확인
System.out.println("N의 타입: " + ((Object) N).getClass().getName());
}
}
출력 결과
입력이 123이라고 가정했을 때 출력 결과는 다음과 같다:
기본형 N의 값: 123
N의 타입: java.lang.Integer
위 코드는 기본형인 int를 래퍼 클래스인 Integer로 캐스팅하여 타입을 확인하는 예다.
참고: 기본형과 래퍼 클래스의 차이
- 기본형(int, double, char 등): 객체가 아니며 메모리 효율성을 위해 사용된다.
- 래퍼 클래스(Integer, Double, Character 등): 기본형을 객체로 감싸는 클래스다. 기본형과 다르게 메서드와 속성을 제공한다.
래퍼 클래스의 타입 확인
래퍼 클래스는 객체이므로 getClass() 메서드를 직접 사용할 수 있다. 예를 들어, 다음 코드는 Integer 객체의 타입을 확인하는 방법이다:
public class WrapperTypeCheck {
public static void main(String[] args) {
Integer num = 42; // 래퍼 클래스
System.out.println("num의 타입: " + num.getClass().getName());
}
}
출력 결과:
num의 타입: java.lang.Integer
Point 총 정리
자바에서 기본형의 타입을 직접 확인할 수는 없다. 하지만 래퍼 클래스로 박싱하면 타입 확인이 가능하다. 디버깅이나 객체 타입 확인이 필요할 때 유용하게 사용할 수 있다. 기본형과 래퍼 클래스의 차이를 이해하면 더 나은 코드 작성에 도움이 된다.
'JAVA > 메서드 정리' 카테고리의 다른 글
Java에서 외부 프로세스 실행: Runtime.getRuntime().exec() 메서드 사용법 (0) | 2024.12.31 |
---|---|
Java의 char 타입 연산: 문자 차이를 계산하고 타입 변환 이해하기 (0) | 2024.12.06 |
Char과 Stirng 비교하는법 // Stirng.valueOf(); (0) | 2022.12.23 |
JAVA 자기주도학습 DAY[3] (2) | 2022.12.22 |
댓글