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)