92 votes

Vérifier si un objet appartient à une classe en Java

Existe-t-il un moyen facile de vérifier qu'un objet appartient à une classe donnée ? Par exemple, je pourrais faire

if(a.getClass() = (new MyClass()).getClass())
{
    //do something
}

mais cela nécessite d'instancier un nouvel objet à la volée à chaque fois, seulement pour le jeter. Existe-t-il un meilleur moyen de vérifier que "a" appartient à la classe "MyClass" ?

21voto

Jacob Relkin Points 90729

Utilisez l'opérateur instanceof :

if(a instanceof MyClass)
{
    //do something
}

6voto

Justin Muller Points 919

Je suis d'accord avec l'utilisation de instanceof déjà mentionné.

Un avantage supplémentaire de l'utilisation de instanceof est que lorsqu'il est utilisé avec un null instanceof %-% de retournera false, tandis que a.getClass() lancera un NullPointerException.

5voto

Kos Points 29125

Essayez l'opérateur instanceof.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X