Guide d'initiation Eclipse et J2SE 5.0

Depuis l'édition 3.1, Eclipse offre une prise en charge totale des nouvelles fonctionnalités de J2SE 5.0 (nom de code "Tiger"). L'une des conséquences les plus notables de cette prise en charge est que vous êtes susceptible de ne même pas la remarquer : tout ce qui à vos yeux doit fonctionner pour J2SE 1.4, y compris l'édition, la compilation, le débogage, les correctifs rapides, la propagation, les actions source, la recherche, et autres, fonctionne de manière transparente avec les nouveaux types et la syntaxe de J2SE 5.0. Dans ce document, nous allons vous présenter certaines des fonctionnalités les plus intéressantes dont les utilisateurs d'Eclipse vont pouvoir bénéficier en utilisant J2SE 5.0.

Conditions prérequises

Pour être en mesure de développer du code compatible avec J2SE 5.0, vous devez disposer d'un environnement d'exécution Java (JRE) de type J2SE 5.0. Si vous lancez Eclipse pour la première fois à l'aide de d'un JRE J2SE 5.0, il utilisera ce JRE par défaut. Dans le cas contraire, il vous faudra utiliser la page de préférences Ouvre la page des préférences JRE installés Java > JRE installés afin de l'enregistrer avec Eclipse.

Le présent document présente brièvement certaines des nouvelles fonctions de langage offertes par J2SE 5.0, mais ne constitue pas à proprement parler un tutoriel pour ces fonctions. Pour plus d'informations, cliquez ici.

Niveau de conformité du compilateur

Pour utiliser les nouvelles fonctions de J2SE 5.0, vous devez travailler sur un projet dont le niveau de conformité 5.0 est activé et qui est doté d'un JRE 5.0. Les nouveaux projets obtiendront automatiquement la conformité 5.0 lors de la sélection d'un JRE 5.0 sur la première page Ouvre l'assistant de nouveau projet Java de l'assistant Nouveau projet Java :

Assistant Nouveau projet

Pour convertir un projet J2SE 1.4 existant en J2SE 5.0, il vous suffit :
  1. de vous assurer qu'un JRE J2SE 5.0 est installé sur votre système,
  2. de commencer à utiliser les fonctionnalités 5.0 dans votre code,
  3. d'utiliser un correctif rapide pour mettre à jour le niveau de conformité du projet lorsqu'une erreur du compilateur est signalée par un drapeau :

    Correctif rapide pour activer J2SE 5.0

Pour garantir un contrôle plus précis, le niveau de conformité du compilateur peut être défini de manière globale pour un espace de travail (à l'aide de la page de préférences Ouvre la page des préférences du compilateur Java Java > Compilateur) ou de manière individuelle pour chaque projet (dans le menu contextuel du projet, sélectionnez Propriétés > Compilateur Java). Les projets dont les niveaux de conformité diffèrent peuvent co-exister dans l'espace de travail et sont inter-dépendants. Vous pouvez également définir précisément les types d'avertissements et d'erreurs de compilateur produits pour chaque projet à l'aide de Propriétés > Java Compiler > Erreurs/Avertissements > Options J2SE 5.0

Types génériques

Les types génériques permettent à des objets d'une même classe de fonctionner en toute sécurité sur des objets de différents types. Ils autorisent, par exemple, l'assurance de génération qu'une Liste<Chaîne> contient toujours des Chaînes, et qu'une Liste<Entier> contient toujours des Entier.

Partout où Eclipse traire un type non générique, il peut traiter un type générique : En outre, une nouvelle propagation a été ajoutée. Déduire les arguments de type générique peut déduire les paramètres de type pour chaque référence de type d'une classe, d'un package ou d'un projet complet :

Appeler Déduire les arguments de type générique

Le fait d'appeler la propagation produit :

Appeler Déduire les arguments de type générique

Eclipse offre de nouvelles options lors de la recherche de références à des types génériques. Voici un exemple :

Exemple avec quatre instanciations paramétrées différentes de List

Sélectionner la référence à List<Entier> et utiliser Rechercher > Références > Projet place les types de Listes en surbrillance sur les quatre lignes :

Recherche sans filtre

Il est possible de filtrer les résultats à l'aide du menu Vue recherche :

Filtrer incompatibles ne conserve que les références aux types dont l'affectation est compatible avec le type sélectionné :

Filtrer incompatibles

Filtrer inexacts ne conserve que les références de type dont la signature est rigoureusement identique :

Filtrer inexacts

Annotations

Les annotations joignent des méta-données portant sur la manière dont les types et les méthodes Java sont utilisés et documentés à destination de la source Java et peuvent dès lors avoir une incidence sur la compilation ou être interrogées lors de l'exécution. Par exemple, @Remplacer déclenche un avertissement de compilateur si la méthode annotée ne remplace pas une méthode d'une super classe :

Annotation de remplacement

Une annotation vous permet de réaliser les mêmes opérations qu'un type Java :

@SuppressWarnings est une annotation très pratique totalement prise en charge sous Eclipse. Imaginez par exemple une méthode privée actuellement inutilisée, mais que vous ne souhaitez pas supprimer :

Avertissement : méthode privée inutilisée

Le fait d'appeler le correctif rapide sur l'avertissement suggère l'ajout d'une annotation @SuppressWarnings :

SuppressWarnings proposée

Sélectionner le correctif rapide ajoute l'annotation. Le compilateur Eclipse honore l'annotation en supprimant l'avertissement sur foo :

SuppressWarnings insérée

Enumérations

Les énumérations sont des types instanciés lors de l'exécution par un ensemble connu et limité d'objets :

Type enum

Là aussi, tout ce que vous pouvez faire à une classe Java peut être effectué sur une énumération :

Autoboxing

L'autoboxing et l'unboxing automatique autorisent une syntaxe de qualité lorsque des types primitifs sont affectés à Références d'objets ou y sont récupérés :

autoboxing mis en évidence

Les fonctionnalités de manipulation de source d'Eclipse traitent l'autoboxing de manière transparente et fournissent les bons types aux nouvelles variables locales et aux assistants de code qui conviennent. Pour une meilleure compréhension du code, il est également possible de signaler les conversions d'emballage ou de déballage automatiques (autoboxing et autounboxing) sous forme d'avertissements de compilation (à l'aide de la section Erreurs de programmation possibles de la page des préférences Ouvre la page des préférences Erreurs/Avertissements Java > Compilateur > Erreurs/Avertissements), ou de les mettre en évidence à l'aide de l'option Couleurs pour la syntaxe (via la section Java > Expressions Auto(un)boxed de la page des préférences Ouvre la page des préférences Couleurs pour la syntaxe Java > Editeur > Couleurs pour la syntaxe) :

Activation de la mise en évidence pour le déballage automatique (autoboxing)

Boucle for améliorée

Pour fonctionner successivement sur chaque élément d'un tableau ou d'une collection (cas les plus courants), J2SE 5.0 permet le recours à une nouvelle syntaxe, que l'on pourrait qualifier de plus 'propre'. Eclipse fournit un modèle de code "foreach" qui peut identifier automatiquement la collection à itérer :

Modèle 'foreach' proposé

Sélectionner le modèle produit :

Modèle 'foreach' inséré

Eclipse fournit également un assistant rapide "Convertir en boucle for améliorée" qui permet de mettre à niveau les boucles for de type 1.4 chaque fois que cela est possible.

Autre

Toutes les autres fonctionnalités de J2SE 5.0 sont gérées avec une grande souplesse par les outils d'édition, de recherche et de manipulation de code d'Eclipse : A vous de jouer !