1. L'opérateur instanceof est utilisé pour indiquer au moment de l'exécution si un objet est une instance d'une classe spécifique . instanceof renvoie une valeur booléenne indiquant si l'objet est une instance de cette classe spécifique ou une sous-classe de celle-ci.
Utilisation :
result = object instanceof class
Paramètres :
résultat : obligatoire. N'importe quelle variable.
objet : obligatoire. Toute expression d’objet.
cours : obligatoire. Toute classe d'objet définie.
Remarque :
Si l'objet est une instance de classe, l'opérateur instanceof renvoie true. Si l'objet n'est pas une instance de la classe spécifiée ou si l'objet est nul, false est renvoyé.
Par exemple :
Boolean b; String str = "foo"; b = ( str instanceof String ); // true b = ( str instanceof Object ); // also true b = ( str instanceof Date ); // false, not a Date or subclass
Remarque :
1) La valeur nulle n'est une instance d'aucun objet, donc l'exemple suivant renvoie false, quoi qu'il arrive la variable est déclarée de quel type.
String s = null; if ( s instanceof String ) // false, won't happen
2) instanceof peut également indiquer correctement si un objet est un tableau et un type d'interface spécifique.
if ( foo instanceof byte[] )
2. Utilisez getClass pour déterminer
Nous savons que tout en Java est un objet, et que les objets que nous utilisons généralement héritent directement ou indirectement d'Object. gentil. La classe Object contient une méthode appelée getClass, qui peut être utilisée pour obtenir la classe de type d'une instance.
Après avoir obtenu la classe de type, vous pouvez appeler certaines méthodes pour obtenir les informations de type. Les principales méthodes sont :
getName():String : Obtenez le nom complet du type.
getSuperClass():Class : Récupère la classe parent directe de ce type. Si le type n'a pas de classe parent directe, renvoie null.
getInterfaces():Class[] : Récupère toutes les interfaces implémentées par ce type.
isArray():boolean : Détermine si le type est un tableau.
isEnum():boolean : Détermine si le type est un type d'énumération.
isInterface():boolean : Détermine si le type est une interface.
isPrimitive():boolean : Détermine si le type est un type de base, c'est-à-dire s'il est int, booléen, double, etc.
isAssignableFrom(Class cls):boolean : Déterminez si ce type est la classe parent (ancêtre) ou l'interface parent (ancêtre) de type cls.
getComponentType():Class : Si le type est un tableau, renvoie le type de composant du tableau.
Pour plus de connaissances sur Java, veuillez prêter attention au tutoriel de base Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!