인프런 커뮤니티 질문&답변

ekgml님의 프로필 이미지
ekgml

작성한 질문수

김영한의 실전 자바 - 중급 2편

다형성을 통한 중복 해결 시도

다운캐스팅

작성

·

28

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

package generic.ex1;

public class BoxMain2 {
    public static void main(String[] args) {
        ObjectBox objectBox = new ObjectBox();
        objectBox.set(10);
        Object object = objectBox.get();
        System.out.println(object);
    }
}

이렇게 해도 잘 출력되는데 다운캐스팅을 또 해줘야 하는 이유가 무엇인가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. ekgml님.

다운캐스팅과 관련된 질문에 대해 답변드리겠습니다.

다운캐스팅은 부모 클래스 타입으로 되어 있는 객체를 자식 클래스 타입으로 변환할 때 사용합니다. 예를 들어, 다음과 같은 경우에 사용됩니다:

Object object = new Integer(10);
Integer integer = (Integer) object;

위와 같은 코드는 Object 타입인 objectInteger 타입으로 변환(다운캐스팅)하여 integer 변수에 할당하는 방식입니다.

하지만 objectBox.get() 메서드는 Object 타입의 값을 반환하므로, 이를 다시 Integer 등 다른 구체적인 타입으로 사용하려면 다운캐스팅이 필요합니다.

관련 질문 URL

해당 주제에 대한 유사한 질문이 이미 게시판에 있는 것으로 확인되었습니다:
- 캐스팅 관련 질문 있습니다.

해당 게시물에서는 자바에서 null 값을 다른 참조 타입으로 캐스팅하는 것에 대해 다루고 있습니다.

자바에서 null 값을 다른 참조 타입으로 캐스팅하는 것은 ClassCastException을 발생시키지 않습니다. ClassCastException은 객체의 실제 타입과 캐스팅하려는 타입이 호환되지 않을 때 발생합니다. 하지만 null은 모든 참조 타입과 호환되기 때문에, null을 다른 어떤 참조 타입으로 캐스팅해도 문제가 발생하지 않습니다.

이를 통해 다운캐스팅과 관련된 좀 더 깊이 있는 이해가 가능할 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ekgml님의 프로필 이미지
ekgml
질문자

감사합니다

ekgml님의 프로필 이미지
ekgml

작성한 질문수

질문하기