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에서 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 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