Apprendre Java pour le développement Android Vérification du type d'objet avec Instanceof

Cette petite leçon de notre Apprendre Java pour le développement Android série vous montre comment vérifier de manière conditionnelle le type d'un objet à l'aide du exemple de mot clé en Java.

Conditions de base

Nous avons parlé de nombreuses instructions conditionnelles de base de Java dans le Apprendre Java pour le développement Android: Syntaxe Java Didacticiel. Par exemple, Java fournit tous les opérateurs conditionnels typiques auxquels on peut s'attendre, y compris ceux permettant de vérifier l'égalité, l'inégalité, supérieure à, inférieure à, etc..

Voici du code Java qui vérifie la valeur d'une variable numérique (appelée iVar) et fournit des chemins de code différents selon que la valeur de iVar est zéro, négative ou positive:

 if (iVar == 0) // variable = zéro else if (iVar> 0) // variable est un nombre positif else // variable est un nombre négatif 

Utilisation d'instanceof dans des instructions conditionnelles

Examinons maintenant une fonctionnalité Java spécifique que vous pouvez également utiliser dans des instructions conditionnelles. Java étant un langage entièrement orienté objet, vous pouvez également vérifier si un objet est d'un type spécifique (une instance d'une classe spécifique) en utilisant la méthode suivante: exemple de mot-clé. le exemple de mot-clé est un opérateur booléen, utilisé comme un opérateur conditionnel booléen mathématique classique pour générer un résultat vrai ou faux.

Regardons un exemple rapide. Supposons que nous ayons une classe parente appelée Fish, qui comporte deux sous-classes dérivées: SaltwaterFish et FreshwaterFish. Nous pourrions utiliser le exemple de mot-clé à tester si un objet est une instance d'une classe (ou sous-classe) spécifique par son nom:

 SaltwaterFish nemo = nouveau SaltwaterFish (); if (nemo instanceof Fish) // nous avons une sorte de poisson // pourrait être un poisson (classe parent), ou une sous-classe quelconque, telle que // SaltwaterFish ou FreshwaterFish. if (nemo instanceof SaltwaterFish) // Nemo est un poisson d'eau salée!  

Utiliser instanceof dans le développement Android

Alors, quand il s’agit de développement Android, quand est la exemple de fonctionnalité utile? Eh bien, pour commencer, les classes du SDK Android sont organisées de manière typique orientée objet: hiérarchiquement. Par exemple, les classes telles que Button, TextView et CheckBox, qui représentent différents types de contrôles d'interface utilisateur, sont toutes dérivées de la même classe parente: View. Par conséquent, si vous souhaitez créer une méthode utilisant un paramètre View, mais dont le comportement varie en fonction du type de contrôle, vous pouvez utiliser le paramètre suivant: exemple de mécanisme permettant de vérifier le paramètre entrant et de déterminer exactement quel type de contrôle de vue a été passé.

Par exemple, la méthode suivante utilise un paramètre View, vous permettant de transmettre tout type de View, mais sélectionne spécifiquement les contrôles TextView pour un traitement spécial:

 void checkforTextView (Vue v) if (v instanceof TextView) // Ceci est un contrôle TextView else // Ceci n'est pas un contrôle TextView 

Dans cet exemple, nous pourrions continuer en appelant une méthode valide uniquement pour un objet TextView et non pour l'objet View générique. Dans ce cas, nous devrions probablement convertir le paramètre View en un objet TextView avant d'effectuer un tel appel. Si, toutefois, nous souhaitions effectuer un appel disponible dans tous les objets View, mais se comportant différemment dans les objets TextView, il n'est pas nécessaire de le tester. Java se chargera d'appeler la version appropriée de la méthode spécifique à TextView. C’est l’une des grandes caractéristiques de la programmation orientée objet: la version la plus appropriée d’une méthode donnée est appelée.

Conclusion

Dans cette petite leçon, vous avez appris à utiliser le exemple de Mot clé Java pour vérifier le type d'un objet au moment de l'exécution et fournir des chemins de code conditionnels basés sur le résultat. Il s’agit d’une fonctionnalité Java pratique sur laquelle les développeurs Android s’appuient souvent, car le SDK Android est organisé de manière hiérarchique..

à propos des auteurs

Les développeurs mobiles Lauren Darcey et Shane Conder ont co-écrit plusieurs livres sur le développement Android: un livre de programmation en profondeur intitulé Développement d'applications sans fil Android et Sams TeachYourself Développement d'applications Android en 24 heures. Lorsqu'ils n'écrivent pas, ils passent leur temps à développer des logiciels mobiles dans leur entreprise et à fournir des services de conseil. Vous pouvez les contacter par courrier électronique à l'adresse [email protected], via leur blog à l'adresse androidbook.blogspot.com et sur Twitter @androidwireless..

Besoin d'aide pour écrire des applications Android? Consultez nos derniers livres et ressources!