Question

De nombreuses langues ont la possibilité de vérifier si un objet est d'un certain type (y compris les sous-classes parent), implémenté avec 'is' et utilisé comme ceci:

if(obj is MyType)

Ou un peu plus fastidieux, vous pouvez vérifier dans d’autres langues en utilisant le mot-clé 'as' pour effectuer une conversion douce et en vérifiant si le résultat est null.

Je n'ai pas utilisé Java depuis des années et je me rends compte, mais Java a sûrement un moyen de le faire facilement sans fouiller dans les API de Reflection?

Merci d'avance pour vos réponses. J'ai effectué une recherche à la fois ici et ailleurs, mais les mots-clés impliqués sont si génériques que même si je suis sûr que la réponse est simple, googler est difficile.

Était-ce utile?

La solution

if (objectReference instanceof type){
    //Your code goes here
}

Plus d'infos ici .

Autres conseils

Vous ne pouvez utiliser instanceof qu'avec un littéral de classe:

Class type = String.class;

if (myObj instanceof String) // will compile

if (myObj instanceof type) //will not compile

L'alternative consiste à utiliser la méthode Class.isInstance

if (type.isInstance(myObj)) // will compile

obj instanceof TargetType renvoie true uniquement si TargetType est dans la hiérarchie des types contenant obj .

Voir le Didacticiel de Sun

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top