Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ClassCastException คืออะไรและจะถูกส่งไปยัง Java เมื่อใด


java.lang.ClassCastException เป็นหนึ่งใน ไม่ถูกเลือก ข้อยกเว้น ในชวา อาจเกิดขึ้นในโปรแกรมของเราเมื่อเราพยายามแปลงวัตถุ ประเภทคลาสเดียว ลงในวัตถุของ ประเภทคลาสอื่น .

เมื่อใดที่ ClassCastException จะถูกส่งออกไป

  • เมื่อเราพยายาม แคสต์ออบเจกต์ของ Parent class ถึง มัน ประเภทชั้นเรียนเด็ก ข้อยกเว้นนี้จะถูกส่งออกไป
  • เมื่อเราพยายาม โยนวัตถุของชั้นเรียนหนึ่งไปยังอีกชั้นเรียนหนึ่ง ประเภทที่ไม่ได้ขยายคลาสอื่นหรือไม่มีความสัมพันธ์ระหว่างพวกเขา

ตัวอย่าง

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)