Załóżmy, że mam dwie klasy pochodzące od trzeciej klasy streszczenie:Czy istnieje forma "bezpiecznego odlewania" w Javie?
public abstract class Parent{
public Parent(){
}
}
public class ChildA extends Parent {
public ChildA {
}
}
public class ChildB extends Parent {
public ChildB {
}
}
w C# mogłem obsłużyć odlewania w nieco wpisz bezpieczny sposób, wykonując:
ChildA child = obj as ChildA;
co uczyniłoby dziecko == null jeśli nie był obiektem typu ChildA. Gdybym miał zrobić:
ChildA child = (ChildA)obj;
... w języku C# spowodowałoby to wyjątek, gdyby typ nie był poprawny.
Więc czy istnieje sposób na zrobienie pierwszego typu rzutowania w Javie? Dzięki.
Duplikat : http://stackoverflow.com/questions/148828/how-to-emulate-c-sharp-as-operator-in-java –
Przeprosiny. Szukałem "bezpiecznego rzucania typu java". Nie przychodzi mi do wyszukiwania "jako słowo kluczowe java". – garrettendi
A następnie wysadza się NPE. ;) –