Wyjątek obsługujący rządanie castowania

Wyjątek obsługujący rządanie castowania
W1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 55
0

Mam listę obiektów klasy Mutant która dziedziczy po klasie Człowiek. Chciałbym żeby gdy będę chciał dodać człowieka do listy mutantów wyskoczył mi mój własny wyjątek ze stosownym komunikatem np "To nie jest mutant". Ktoś mi podpowie jak to zrobić ?

Kopiuj
Czlowiek czlowiek = new Czlowiek("Heniek", "Kowal", "Elektryk");
        List<Mutant> mutanci = new ArrayList<>();
        mutanci.add(czlowiek);
Charles_Ray
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1912
2
  1. Łamiesz zasadę LSP: https://stackoverflow.com/questions/56860/what-is-an-example-of-the-liskov-substitution-principle
  2. Możesz ręcznie sprawdzić za pomocą instanceof przed dodaniem do listy, ale: patrz punkt 1
  3. Żądanie
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
5

To akurat proste -> przecież taki kod się nie skompiluje po prostu :D Nie trzeba zadnych wyjątków ani cudów. Statyczne typowanie ratuje świat.

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5550
1
Charles_Ray napisał(a):
  1. Łamiesz zasadę LSP:

A to nie jest tak że jakby było na odwrót to by łamało ?

Charles_Ray
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1912
0

Nie zauważyłem, że koledze się w ogóle kod nie kompiluje, myślałem, że jest krok dalej :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.