> Tech > La classe Java polymorphe

La classe Java polymorphe

Tech - Par Renaud ROSSET - Publié le 31 janvier 2012
email

Une classe Java peut être un polymorphe. Qui signifie « plusieurs formes ». Les mots-clés extends et implements sont utilisés pour cela. Notre classe est MessageMonitorView, mais elle étend Viewpart, donc elle est aussi une ViewPart. En outre, elle implémente ISelectionListener, donc elle est aussi cela.

La classe Java polymorphe

Pour mieux expliquer, disons que Horse extends Animal implements Race Horse. Donc, en fait, il y a trois choses distinctes regroupées dans une classe. Le Horse est un animal. Tous les Horses sont des Animals (mais tous les Animals ne sont pas des horses) ; par conséquent, il extends. Cependant, tous les Horses ne sont pas des Race Horse. Pour cela, nous devons apprendre au Horse quelques astuces. En java, apprendre des astuces équivaut à « implémenter des méthodes ».

Public Class

Par conséquent, l’instruction commençant par « public class » est aussi une erreur parce que nous avons dit que nous implémentions ISelectionService mais nous ne l’avons pas réellement fait. A nouveau, cela est indiqué par les lignes rouges ondulantes. Donc, plaçons notre curseur sur ces lignes, appuyons sur Ctrl+1 et sélectionnons Add unimplemented methods (figure 11). Cela ajoutera la méthode requise à notre classe et nous sommes prêts à l’implémenter.

Eclipse

Dans notre implémentation, nous recevrons la sélection d’Eclipse et nous imprimerons le nom de la classe à laquelle elle appartient. Egalement, nous affichons la représentation String de l’objet, pour voir si cela produit quelque chose d’intéressant. (Comme toutes les classe Java extend Object, elles ont toutes quelques méthodes en commun, dont l’une est toString().) Compte tenu de la manière dont le service de sélection a été conçu, nous devons aussi implémenter la méthode dispose de la vue pour désenregistrer notre classe. Eclipse appellera la méthode dispose dès que la vue se fermera. Si nous oublions de faire cela, Eclipse continuera à appeler notre implémentation même après que nous l’ayons fermée, ce qui nous mènera à NullPointerExceptions (NPEs). L’équivalent de NullPointerException sur le System i est MCH3601.

A présent, tapez le code de la figure 12 dans la méthode SelectionChanged(). Pour obtenir une copie du source complet (et pas simplement les méthodes ci-dessous), allez sur ce site et sélectionnez Source 2. Sélectionnez toutes les lignes source dans notre classe Java et remplacez-les par celles du lien indiqué.

Dans la méthode selectionChanged, nous vérifions d’abord si nous avons causé un changement de sélection. Nous ne deviendrons peut-être jamais un fournisseur de sélection, mais il est de bonne règle d’effectuer cette vérification.

En B, nous recevons un objet du type générique ISelection. Pour en faire quelque chose, nous devons vérifier si c’est l’une de ses sous-classes (c’est-à-dire s’il a aussi une autre forme). Dans notre cas, nous vérifions si l’objet passé est du type IStructuredSelection, puisque c’est ce que nous recevons des sélections table et tree. Si c’est le cas, nous l’insérons dans un objet IStructuredSelection pour obtenir l’accès aux méthodes de cette classe. L’une des méthodes est l’extraction du premier objet dans la sélection. Nous obtenons cet objet et imprimons l’information dans notre « console ».

En C, nous nous désenregistrons comme selection listener parce que cette méthode sera appelée si nous fermons notre vue.

Sauvegardez et lancez l’application comme nous l’avons fait auparavant. Ouvrez la vue Error Log en la trouvant dans Window, Show view, Other et faites-la glisser dans un endroit différent, pas superposée à votre vue. Puis sélectionnez une ligne dans la vue Error Log et voyez comment notre vue réagit. Sélectionnez une rubrique quelconque dans le Package Explorer et voyez ce qui se passe. Ouvrez l’arbre RSE et sélectionnez quelques éléments dans cette vue. Le résultat devrait ressembler à celui de la figure 13.

Touches finales

Dans cet article, j’ai démontré comment vous pouvez étendre le RDi en créant une vue et en utilisant le Selection Service. L’extension du RDi est très importante parce que c’est l’outil de développement des sites System i modernes. Et bien que le RDi contienne beaucoup de pépites, il ne peut saurait contenir toutes les bonnes choses que vous avez déjà créées pour faciliter votre travail de développement. Le fait de pouvoir inclure vos outils dans le RDi est absolument précieux.

Dans le dernier article de cette série, nous finirons notre vue message-monitoring et nous exporterons notre projet afin que quelqu’un d’autre puisse en profiter.

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

Tech - Par Renaud ROSSET - Publié le 31 janvier 2012