Verwendung:
(Typvariable Instanz der Klasse | Schnittstelle)
Wirkung:
Der Instanzoperator wird verwendet, um zu bestimmen, ob das vorherige Objekt eine Instanz der folgenden Klasse oder deren Unterklasse oder Implementierungsklasse ist. Wenn ja, geben Sie true zurück, andernfalls geben Sie false zurück.
Beachten:
・Der Kompilierzeittyp des Operanden vor der Instanz von ist entweder derselbe wie die folgende Klasse oder weist eine Eltern-Kind-Vererbungsbeziehung mit der folgenden Klasse auf, andernfalls tritt ein Kompilierungsfehler auf.
Ein einfaches Beispiel:
Kopieren Sie den Codecode wie folgt:
/**
* Instanz des Operators
* @author-Administrator
*
*/
öffentliche Klasse TestInstanceof {
public static void main(String[] args) {
//Verwenden Sie die Object-Klasse, wenn Sie Hallo deklarieren. Der kompilierte Typ von Hallo ist dann Object
// Die Objektklasse ist die übergeordnete Klasse aller Klassen, aber der tatsächliche Typ von Hallo ist String
Objekt hello = "Hallo";
//String ist eine Unterklasse von Object und kann eine Instanzoperation ausführen und true zurückgeben
System.out.println("Ist die Zeichenfolge eine Instanz der Objektklasse:"
+ (Hallo Instanz von Object));
//WAHR
System.out.println("Ist der String eine Instanz von String:"
+ (Hallo Instanz von String));
//FALSCH
System.out.println("Ist der String eine Instanz der Math-Klasse:"
+ (Hallo Instanz von Math));
//String implementiert die Comparable-Schnittstelle und gibt daher true zurück
System.out.println("Ist die Zeichenfolge eine Instanz der Comparable-Klasse:"
+(Hallo Instanz von Comparable));
/**
* String ist weder die Math-Klasse noch die übergeordnete Klasse der Math-Klasse, daher wird der folgende Code falsch kompiliert
*/
//String a = "Hallo";
//System.out.println("Ist der String eine Instanz der Math-Klasse:"
// + (eine Instanz von Math));
}
}
Laufergebnisse:
Kopieren Sie den Codecode wie folgt:
Ob die Zeichenfolge eine Instanz der Objektklasse ist: true
Ob die Zeichenfolge eine Instanz von String ist: true
Ob die Zeichenfolge eine Instanz der Math-Klasse ist: false
Ob die Zeichenfolge eine Instanz der Comparable-Klasse ist: true
Normalerweise wird vor der erzwungenen Typkonvertierung zunächst festgestellt, ob das vorherige Objekt eine Instanz des letzteren Objekts ist und ob die Konvertierung erfolgreich sein kann, um so die Robustheit des Codes sicherzustellen.