Ακολουθεί ένα παράδειγμα προς επεξήγηση:
```java
Object obj =new Object();
δοκιμάστε {
String str =(String) obj; // Προσπάθεια μετάδοσης Αντικειμένου σε συμβολοσειρά
} catch (ClassCastException e) {
System.out.println("Παρουσιάστηκε ClassCastException");
}
```
Σε αυτό το παράδειγμα, το αντικείμενο "obj" είναι μια παρουσία της γενικής κλάσης "Object" και προσπαθούμε να το μεταδώσουμε σε μια "String". Εφόσον το "Object" δεν είναι "String" και δεν υπάρχει σιωπηρή μετατροπή τύπου μεταξύ των δύο, καταλήγει σε ένα "ClassCastException".
Ακολουθούν τα βασικά σημεία που πρέπει να θυμάστε σχετικά με το «ClassCastException»:
1. Εμφανίζεται κατά τη διάρκεια του χρόνου εκτέλεσης, όταν γίνεται προσπάθεια αντιστοίχισης ενός αντικειμένου ενός τύπου σε μια μεταβλητή ή αναφορά διαφορετικού, ασυμβίβαστου τύπου.
2. Συμβαίνει όταν μια αναφορά υποκλάσης εκχωρείται σε μια αναφορά υπερκλάσης, αλλά η υποκλάση δεν είναι έγκυρη υποκλάση της υπερκλάσης.
3. Εκπέμπεται κατά την κλήση μεθόδων ή την πρόσβαση σε πεδία σε ένα αντικείμενο που δεν είναι του σωστού τύπου.
4. Το «ClassCastException» μπορεί να αποφευχθεί διασφαλίζοντας τον σωστό έλεγχο τύπου και casting όταν ασχολούμαστε με αντικείμενα διαφορετικών κλάσεων.
5. Συνιστάται να χρησιμοποιείτε τον τελεστή «instanceof» για να ελέγξετε τη συμβατότητα των αντικειμένων πριν από τη μετάδοση για να αποτρέψετε το «ClassCastException».
```java
if (obj instanceof String) {
String str =(String) obj; // Ασφαλής χύτευση
} αλλο {
ρίχνει το νέο ClassCastException("Δεν είναι δυνατή η μετάδοση " + obj.getClass().getName() + " στο String");
}
```
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα