Java의 java.lang.ClassCastException

Shiv Yadav 2024년2월15일
  1. Java의 java.lang.ClassCastException
  2. Java에서 java.lang.ClassCastException 해결
Java의 java.lang.ClassCastException

상위 클래스에서 하위 클래스의 객체로 객체를 캐스트하려고 하면 java.lang.ClassCastException이 발생합니다. 그러나 전혀 관련이 없는 두 유형 간에 개체를 변환하려고 시도하는 경우에도 발생할 수 있습니다.

이 문서는 Java의 java.lang.ClassCastException을 처리하는 데 도움이 됩니다.

Java의 java.lang.ClassCastException

아래 프로그램은 Object 유형의 객체 obb를 생성하고 객체 obb를 String 유형의 객체 shh로 지정합니다. 객체를 하위 유형으로 타입 변환하려고 할 때 객체 클래스가 Java.ClassCastException에 있는 모든 클래스의 상위 클래스임을 알고 있기 때문에 Java.lang으로 끝납니다.

코드 - classCast.java:

public class classCast {
  public static void main(String[] args) {
    try {
      Object obb = new Object();

      String shh = (String) obb;

      System.out.println(shh);
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

출력:

java.lang.Object를 java.lang.String으로 캐스팅할 수 없음

Java에서 java.lang.ClassCastException 해결

새 유형이 객체를 유형 변환하려는 클래스의 상위 클래스 중 하나에 속하는지 확인하거나 ClassCastException이 발생하지 않도록 상위 객체를 하위 유형으로 유형 변환하지 마십시오. 컴파일 시간 유효성 검사를 제공하는 제네릭을 사용하여 컬렉션을 사용하는 동안 ClassCastException을 방지할 수 있습니다.

RuntimeException 하위 클래스이므로 확인되지 않은 예외입니다. 부모 개체를 자식 유형으로 유형 변환하거나 개체를 인스턴스가 아닌 하위 클래스로 유형 변환하려고 할 때와 같이 한 유형에서 다른 유형으로 과정을 부적절하게 유형 변환하려고 시도하면 JVM이 자동으로 이 예외를 발생시킵니다.

코드 - classCast.java:

package classcaste;

public class classCast {
  public static void main(String[] args) {
    try {
      String shh = "shiv";
      Object obb = (Object) shh;

      System.out.println(obb);
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

출력:

shiv
작가: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

관련 문장 - Java Error