Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Čo je ClassCastException v súvislosti s počítačmi?

V programovaní Java sa „ClassCastException“ vyskytuje, keď sa pokúsi pretypovať objekt jednej triedy do inej triedy, s ktorou nie je kompatibilný. Je to výnimka za behu, ktorá označuje pokus o konverziu nekompatibilného typu.

Tu je príklad na ilustráciu:

```java

Object obj =new Object();

skúste {

String str =(String) obj; // Pokus o pretypovanie objektu na reťazec

} catch (ClassCastException e) {

System.out.println("Vyskytla sa výnimka ClassCast");

}

```

V tomto príklade je objekt `obj` inštanciou generickej triedy `Object` a my sa ho pokúšame pretypovať na `String`. Keďže „Object“ nie je „String“ a medzi nimi nie je žiadna implicitná konverzia typu, výsledkom je „ClassCastException“.

Tu sú kľúčové body, ktoré si treba zapamätať o výnimke „ClassCastException“:

1. Vyskytuje sa počas behu, keď dôjde k pokusu o priradenie objektu jedného typu k premennej alebo odkazu iného, ​​nekompatibilného typu.

2. Stáva sa to, keď je odkaz na podtriedu priradený odkazu na nadtriedu, ale podtrieda nie je platnou podtriedou nadtriedy.

3. Vyhodí sa pri volaní metód alebo pri prístupe k poliam na objekte, ktorý nie je správneho typu.

4. "ClassCastException" sa dá vyhnúť zabezpečením správnej typovej kontroly a pretypovania pri práci s objektmi rôznych tried.

5. Odporúča sa použiť operátor `instanceof` na kontrolu kompatibility objektov pred pretypovaním, aby sa zabránilo `ClassCastException`.

```java

if (obj instanceof String) {

String str =(String) obj; // Bezpečné liatie

} inak {

throw new ClassCastException("Nie je možné odovzdať " + obj.getClass().getName() + "na reťazec");

}

```

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené