Baza Wiedzy

ClassCastException

Opis🔗

ClassCastException jest wyjątkiem z grupy wyjątków niekontrolowanych (dziedziczących po RuntimeException), więc nie ma konieczności jego obsługi. Możemy się z nim spotkać w sytuacji, gdy próbujemy dokonać rzutowania obiektu na niezgodny z nim typ. Najczęściej będzie to spowodowane błędnym wykorzystaniem polimorfizmu.

Wyjątek znajduje się w pakiecie java.lang i dzięki temu nie ma konieczności dodawania dodatkowych importów, pełna ścieżka do klasy to java.lang.ClassCastException.

Kurs Java

Przykład🔗

ClassCastExample.java

package pl.javastart.exception.classcastexception;

public class ClassCastExample {
	public static void main(String[] args) {
		Number[] numbers = {1, 2.5, 4, 7.6};
		double sum = 0;
		for (Number number : numbers) {
			sum += (Integer)number;
		}
		System.out.println(sum);
	}
}

W programie tworzymy tablicę kliku liczb różnego typu - Integer oraz Double, a następnie chcemy je zsumować.

Przez nieuwagę w pętli zamiast rzutować na typ Double rzutujemy na Integer. Oczywiście już przy drugiej iteracji występuje wyjątek, ponieważ nie da się zrzutować wartości 2.5 na typ całkowitoliczbowy. Ostatecznie w konsoli zobaczymy komunikat z wyjątkiem.

classcastexception

Jeżeli natrafimy na wyjątek ClassCastException to raczej zamiast próbować go obsługiwać powinniśmy się zastanowić, czy naszego kodu nie da się zapisać w inny, odpory na błędy sposób.

Najlepszy newsletter o Javie w Polsce

Czy chcesz otrzymywać nowości ze świata Javy oraz przykładowe pytania rekrutacyjne? Zapisz się na newsletter i bądź na bieżąco! Otrzymasz także ekskluzywne materiały oraz informacje o nowych kursach i promocjach.

Nikomu nie udostępniamy Twojego maila, a jeśli zechcesz to w każdej chwili możesz się wypisać.

Komentarze do artykułu

Wyłączyliśmy możliwość dodawania komentarzy. Poniżej znajdziesz archiwalne wpisy z czasów gdy strona była jeszcze hobbystycznym blogiem. Zapraszamy natomiast do zadawnia pytań i dyskusji na naszej grupe na facebooku.