λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> Αναπαραγωγή Πολυμέσων Windows

Τι είναι το ClassCastException όσον αφορά τους υπολογιστές;

Στον προγραμματισμό Java, εμφανίζεται ένα "ClassCastException" όταν γίνεται προσπάθεια να μεταδοθεί ένα αντικείμενο μιας κλάσης σε μια άλλη κλάση με την οποία δεν είναι συμβατή. Είναι μια εξαίρεση χρόνου εκτέλεσης που υποδεικνύει ότι επιχειρείται μια μετατροπή μη συμβατού τύπου.

Ακολουθεί ένα παράδειγμα προς επεξήγηση:

```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");

}

```

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα