什麼是 ClassCastException 以及它何時會在 Java 中被丟擲?\n


java.lang.ClassCastException 是 Java 中的一種未經檢查的異常。當我們嘗試將一個某個類型別的物件轉換為另一個類型別的物件時,可能會在我們的程式中發生這種情況。

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)

更新於: 2019年7月30日

1K+ 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告