2008-10-26 9 views
6

De nombreuses langues ont une possibilité de vérifier si un objet est d'un certain type (y compris les sous-classes mères), mis en œuvre avec « est » et utilisé comme ceci:Quelle est la manière la plus simple de faire 'est' en Java?

if(obj is MyType) 

Ou un peu plus laborieusement, vous pouvez dans d'autres les langues vérifient en utilisant le mot-clé "as" pour faire un "soft" et voir si le résultat est nul.

Je n'ai pas utilisé Java depuis des années et je me remets à la vitesse dessus mais sûrement Java a un moyen de le faire facilement sans plonger profondément dans les API Reflection?

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

Répondre

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

Plus d'informations here.

+0

oh oui, c'est exactement ce que Je cherchais. Merci. –

1

obj instanceof TargetType renvoie la valeur true au cas où TargetType est dans la hiérarchie de types qui contient obj.

Voir Sun's tutorial

7

Vous ne pouvez utiliser instanceof avec une classe littérale: qui est:

Class type = String.class; 

if (myObj instanceof String) // will compile 

if (myObj instanceof type) //will not compile 

L'alternative est d'utiliser la méthode Class.isInstance

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