什麼是 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)
廣告