더북(TheBook)

이번에는 반대 경우를 한번 살펴볼까요? long형에 x2라는 변수를 선언하고, 5라는 값을 넣습니다. 다음으로 int형 변수 y2를 선언하고, y2x2의 값을 넣어보겠습니다.

public class TypeCastingExam {

    public static void main(String[] args) {
        int x = 50000;
        long y = x;
        
        long x2 = 5;
        int y2 = x2;
        System.out.println(y2);
    }
}

 

실행결과

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Type mismatch: cannot convert from long to int

    at TypeCastingExam.main(TypeCastingExam.java:9)

 

이번에는 컴파일러가 형변환 에러를 발생시킵니다. long형의 값을 int형에 담을 때는 문제가 발생할 수도 있기 때문입니다. 실제로 변수 x2에는 5라는 작은 값이 들어있고 int형 변수 y25라는 값을 충분히 담을 수 있지만, 컴파일러는 이러한 내용을 모르기 때문에 결정을 내릴 수 없습니다. 따라서 프로그래머가 형변환해줘야 합니다. 프로그래머가 “이 값을 int형에 담아도 좋습니다.”라고 알려주면 문제없이 형변환할 수 있죠.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.