Der instanceof
-Operator in Java ist ein boolescher binärer Operator, der verwendet wird, um zu überprüfen, ob ein Objekt eine Instanz einer spezifischen Klasse, einer Superklasse oder einer Schnittstelle ist.
Der instanceof
-Operator gibt true
zurück, wenn das getestete Objekt eine Instanz der angegebenen Referenztypen (Klassen oder Schnittstellen) ist. Andernfalls gibt es false
zurück.
Die Syntax für den instanceof
-Operator lautet:
(object instanceof Class)
wobei object
das zu testende Objekt ist und Class
der Referenztyp ist, auf den geprüft werden soll.
Ein einfaches Anwendungsbeispiel könnte folgendermaßen aussehen:
public class Test {
public static void main(String args[]){
String name = "Geek";
// folgende wird true zurückgeben, da name eine Instanz von String ist
boolean result = name instanceof String;
System.out.println( result );
}
}
Da der instanceof
-Operator in der Regel dazu dient, den Typ eines Objekts zur Laufzeit sicher zu ermitteln, wird er oft in Verbindung mit einer Typumwandlung verwendet. Ein häufiges Szenario ist die Handhabung von Polymorphismus in Java, insbesondere wenn mehrere Klassen oder Schnittstellen beteiligt sind.
Es ist allerdings eine gute Vorgehensweise, den Gebrauch von instanceof
auf ein Minimum zu beschränken, insbesondere in hochgradig polymorphen Code-Strukturen. In vielen Fällen kann der Einsatz dieses Operators ein Anzeichen dafür sein, dass das Design des Code verbessert werden könnte. Beispielsweise sollte man prüfen, ob Polymorphismus und Methodenüberschreibung besser genutzt werden können, bevor man auf instanceof
zurückgreift.