Możesz skorzystać z operatora instanceof ... przyczym zalezy jakiej javy korzystasz (wersji ), bo korzystając z tego potem używjąc obiektu musisz rzutować, jesli jednak używas zJDK w wersji 14 release i wyżej > to możesz użyć rozważania
JEP 305: Pattern Matching for instanceof (Preview) - wtedy nie musisz wewnętrznie rzutować obiektu
Tak w starej wersji
if (obj instanceof String) {
String s = (String) obj; // musisz rzutować na instancje klasy string jeśli obiekt taki jest
// use s
}
gdzie uwzględnisz swoją klase, natomiast w javie14 > możesz bez rzutowania korzystać ze swojego obiektu
if (obj instanceof String obiekt) {
// tutaj mozesz korzystac z obiekt bez rzutowania na rodzaj klasy
} else {
// obiekt tutaj tez bedzie dostepny
}
https://openjdk.java.net/jeps/305
Pamiętaj o jednej istotnej rzeczy jeśli CAR implementuje Vehicle, to Car instanceof Vehicle jest prawdziwe. Ale jeśli faktycznie zapis obiektu typu Car jako instancji car też możesz sprawdzić natomiast Vehicle ot nie jest car
MyInterface obj = new ImplClass();
System.out.println(obj instanceof ImplClass); // bedzie prawdą
System.out.println(obj instanceof MyInterface );// bedzie prawdą