java.lang.ClassCastException 선택되지 않은 중 하나입니다. 예외 자바에서. 우리 프로그램에서 하나의 클래스 유형의 개체를 변환하려고 할 때 발생할 수 있습니다. 다른 클래스 유형의 개체로 .
ClassCastException이 발생하는 시기
- 상위 클래스의 개체를 캐스팅하려고 할 때 ~으로 그것의 하위 클래스 유형, 이 예외가 발생합니다.
- 한 클래스의 객체를 다른 클래스로 캐스팅하려고 할 때 다른 클래스를 확장하지 않았거나 서로 관계가 없는 유형입니다.
예
class ParentTest { String parentName; ParentTest(String n1){ parentName = n1; } public void display() { System.out.println(parentName); } } class ChildTest extends ParentTest { String childName; ChildTest(String n2) { super(n2); childName = n2; } public void display() { System.out.println(childName); } } public class Test { public static void main(String args[]) { ChildTest ct1 = new ChildTest("Jai"); ParentTest pt1 = new ParentTest("Adithya"); pt1 = ct1; pt1.display(); ParentTest pt2 = new ParentTest("Sai"); ChildTest ct2 = (ChildTest)pt2; } }
출력
Jai Exception in thread "main" java.lang.ClassCastException: ParentTest cannot be cast to ChildTest at Test.main(Test.java:30)