j'utilise Eclipse 3.0.2 et Java 5.0
Dernièrement, après avoir compilé mon code directement avec javac, je m'aperçois d'un message (warning, unchecked ...), qui m'amènes à utiliser les constructionc générique pour les listes et collections.
Mon problème : Eclipse, bien qu'utilisant la version 5.0 de Java, ne reconnait pas la syntaxe
private ArrayList
comme valide.Y-a-t-il une option à régler, un plugin à télécharger ?
D'autre part, j'aimerais savoir ce que vous pensez de cette nouveauté. Est-elle intéressante, a-t-elle des inconvénient ?
# Boulet
Posté par Gart Algar . Évalué à 1.
private ArrayList< MyObj >
[^] # Re: Boulet
Posté par Alexandre Nion . Évalué à 3.
Dans le menu Window/Preferences/Java/Compiler , je crois me souvenir qu'il faut placer le "Compiler compliance level" à 5.0 , par défaut il reste sur 1.4 et comme la jvm 1.4 ne reconnaît pas ces fonctionnalités il grogne..
[^] # Presque bon
Posté par Gart Algar . Évalué à 1.
[^] # Re: Presque bon
Posté par metcox . Évalué à 2.
Un conseil aussi lorsque que tu as une erreur que tu ne connais pas, ou que tu ne sais pas résoudre, tu fait clic droit sur cette erreur et "quick fix" (eclipse 3.1 n'ai pas encore en français) et ça te propose des solutions genre "passer Compiler compliance level à 5.0" (pour eclipse 3.1, mais 3.0 j'ai pas essayé mais apparemment ça le propose pas).
[^] # Re: Presque bon
Posté par Gart Algar . Évalué à 1.
Oui, je suis en train de le télécharger déjà :)
Et pour le clic droit, quick fix, j'avais regarde, la solution n'étais pas disponible avec ma version.
Merci de votre aide à tous les deux.
Des avis sur l'utilisation de cette syntaxe ?
[^] # Re: Tu tiens le bon bout
Posté par Alexandre Nion . Évalué à 2.
[^] # Re: Tu tiens le bon bout
Posté par Alexandre Nion . Évalué à 1.
[^] # Re: Tu tiens le bon bout
Posté par Gart Algar . Évalué à 1.
Ce n'est pas trop grave, si avec la version 3.1 je corrige mon problème. Heureusement que je peux installer une nouvelle version :)
Merci encore.
# Génériques
Posté par Sylvain Sauvage . Évalué à 5.
L'utilisation des génériques permet au compilateur (et donc à toi-même) de faire plus de tests. Par exemple dans une List< Toto >, tu ne peux mettre que des Toto (avec une List, on pouvait mettre n'importe quoi). Ensuite, tu n'as plus à transtyper les objets que tu sors de ta liste puisque tu sais (et le compilateur aussi) que ce sont des Toto.
Exemple, avant :
List lst = new ArrayList();
lst.add(new Toto());
Toto t = (Toto)lst.elementAt(0);
lst.add(new String()); // c'est permis
Toto u = (Toto)lst.elementAt(1); // personne ne se plaint, sauf à l'exécution
après :
List< Toto > lst = new ArrayList< Toto >();
lst.add(new Toto());
Toto t = lst.elementAt(0);
lst.add(new String()); // ne compile pas !
Tu as aussi d'autres constructions intéressantes en 1.5, notamment le nouveau for :
Avant :
for (Iterator i = lst.iterator(); i.hasNext(); ) {
Toto t = (Toto)i.next();
...
}
maintenant :
for (Toto t : lst) {
...
}
et d'autres ajouts (annotations, api multi-thread augmentée, etc.).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.