IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Problème de code [java5 ou java4]


Sujet :

avec Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut Problème de code [java5 ou java4]
    Bonjour voila j’ai un problème avec un code que j’ai téléchargé sur le net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    import java.util.ArrayList;
     
    public class Historique {
       private ArrayList<String> traitements;
     
       public Historique() {
          initialiser();
       }
     
       public void initialiser() {
          traitements = new ArrayList<String>();
       }
     
       public void ajout(String fonction) {
          boolean existe = false;
          for (String traitement : traitements) 
             if (traitement.equals(fonction)) { 
                existe = true;
                break;
             }
          if (!existe) traitements.add(fonction);
       }
     
       boolean existe(String fonction) {
          for (String traitement : traitements) 
             if (traitement.equals(fonction)) return true; 
          return false;
       }
    }

    Alors mon problème est : a chaque fois que je compile ce code j’ai le message d’ erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    C:\src\Historique.java:4: <identifier> expected
       private ArrayList<String> traitements;
                        ^
    C:\src\Historique.java:11: '(' or '[' expected
          traitements = new ArrayList<String>();
                                     ^
    C:\src\Historique.java:16: ';' expected
          for (String traitement : traitements) 
                                 ^
    C:\src\Historique.java:22: illegal start of expression
       }
       ^
    C:\src\Historique.java:25: ';' expected
          for (String traitement : traitements) 
                                 ^
    C:\src\Historique.java:27: illegal start of expression
          return false;
          ^
    C:\src\Historique.java:28: illegal start of expression
       }
       ^
    7 errors
    Je porte a votre connaissance que j’utilise JCreator et JDK1.4
    Alors si c’est de java 5 sur le quel je ne connaît que nom
    SVP expliquez moi ce que je doit changer pour que ça marche et merci

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Salut,

    Il faut enlever les generics et la boucle for étendue pour que ça compile en 1.4 car c'est deux choses ont été introduites à la version 5 de Java.

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    En gros, il faudrait enlever tous les <XXXXX> du code, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private ArrayList<String> traitements;
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private ArrayList traitements;
    et transformer les boucles for étendues en boucles for ordinaires, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (String traitement : traitements)
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(int i=0;i<traitements.size();i++){
      String traitement = (String)traitements.get(i);
      :
      :
    ou encore avec un Iterator.

    Bonne chance.

    Si tu veux bien te perfectionner il faut lire les tutoriels et cours de formation pour apprendre Java : http://java.developpez.com/cours/
    Par exemple le génial cours Java de jmdoudou : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    merci 1000 fois
    je vais faire les modifications que tu ma dit espérant que ça va marcher

  5. #5
    Invité
    Invité(e)
    Par défaut
    salut,
    essaye d'utiliser la jdk1.5 mieux que changer ton code.

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par mehdiing
    salut,
    essaye d'utiliser la jdk1.5 mieux que changer ton code.
    Ca dépend... Si tout le reste du code est en java 1.4, ça peut nécessiter pas mal de refactoring.

    En plus, la version peut être imposée par la hiérarchie si c'est pour une application professionnelle (je travaille actuellement en java 1.4 à cause de cette contrainte)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  7. #7
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par CyberChouan
    Ca dépend... Si tout le reste du code est en java 1.4, ça peut nécessiter pas mal de refactoring.
    Pas tant que ça... y'a juste les variables "enum" à renommer...

  8. #8
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par ®om
    Pas tant que ça... y'a juste les variables "enum" à renommer...
    Là, on parle de passer un code de java 1.4 vers java 1.5, et il n'y a pas d'enum en 1.4.

    Le gros du boulot de refactoring, c'est si on beaucoup de listes ou de maps dans le code (en 1.4), il faut à chaque fois ajouter le typage, (et pour faire propre supprimer les cast explicites à l'utilisation des objets)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  9. #9
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Euh, le coup du refactoring je comprends pas trop là, je ne vois pas en quoi il est nécessaire d'utiliser des fonctionnalités de Java 5... Certes c'est mieux mais certainement pas nécessaire, donc aucun travail pour passer de la 1.4 à la 5.

  10. #10
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par remika
    Euh, le coup du refactoring je comprends pas trop là, je ne vois pas en quoi il est nécessaire d'utiliser des fonctionnalités de Java 5... Certes c'est mieux mais certainement pas nécessaire, donc aucun travail pour passer de la 1.4 à la 5.
    Les Generics génèrent un grand nombre de warnings lorsqu'il sont absent, ce qui peut être problématique si on veut une compilation propre...

    Quand aux enums, c'est l'apparition du mot-clef enum qui pose problème, puisqu'il interdit désormais de l'utiliser comme nom de variable.

    Par exemple ce code Java compile sans erreur ni warning en 1.4, mais génère une erreur et un warning sous Java 5 et + :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	Set enum = new TreeSet(); // syntax error
    	enum.add("Hello"); // warning unchecked

    De même, et de manière générale le changement de version de développement peut poser des problèmes de compatibilité qui peuvent nécessiter de retravailler un peu le code : http://java.sun.com/j2se/1.5.0/compatibility.html

    a++

  11. #11
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Pour le mot-clé enum effectivement...

    Après pour les warning, j'ai déjà passé des applications de 1.4 à 5, et lorsque l'appli est assez grosse, ba franchement je préfère avoir les warning plutôt que passer 1 mois à tout mettre d'équerre

    La page concernant les problèmes de compatibilité est très intéressante, thx

  12. #12
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par remika
    Après pour les warning, j'ai déjà passé des applications de 1.4 à 5, et lorsque l'appli est assez grosse, ba franchement je préfère avoir les warning plutôt que passer 1 mois à tout mettre d'équerre
    Pour la compilation sans warning, cela peut être une requête du client... et là tu n'as plus trop le choix !

    Dans ce cas là le coût de la migration devra être discuté avec lui. Bref tout cela pour dire que la migration n'est pas forcément évidente (en entreprise bien sûr).

    a++

  13. #13
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Pour la compilation sans warning, cela peut être une requête du client...
    Justement, je disais ça par rapport au client, mes clients en général sont surtout pressés

  14. #14
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Citation Envoyé par remika
    Justement, je disais ça par rapport au client, mes clients en général sont surtout pressés
    Les miens sont souvent les deux : pressés et exigeants

  15. #15
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par remika
    Justement, je disais ça par rapport au client, mes clients en général sont surtout pressés
    Disons que j'ai connu l'inverse : objectif zéro warning !

    En plus on devait utiliser Checkstyle, qui permet d'apporter des restrictions sur les conventions de codages (et donc un pacquet de nouveaux warnings ).


    Si la compilation générait un warning, ce dernier devait impérativement être répertorié dans un document qui expliquait pourquoi on ne le corrigeait pas. Ce document étant bien entendu validé par le client...

    Je ne sais pas s'ils sont passé à Java 5.0, mais j'imagine bien que cela a du entrainé une grosse discussion avec le client...

    a++

  16. #16
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par CyberChouan
    Là, on parle de passer un code de java 1.4 vers java 1.5, et il n'y a pas d'enum en 1.4.

    Le gros du boulot de refactoring, c'est si on beaucoup de listes ou de maps dans le code (en 1.4), il faut à chaque fois ajouter le typage, (et pour faire propre supprimer les cast explicites à l'utilisation des objets)
    Les generics ont justement été pensés pour permettre cette transition entre java 1.4 et java 5... C'est pour ça qu'ils sont implémenté en "type erasure", sinon ils n'auraient pas été faits comme ça...

    Tu peux très bien utiliser des classes génériques sans utiliser la généricité...

    Quand aux warnings, il te mettra simplement une ligne indicant qu'il faut utiliser -XLint:deprecated pour avoir les warnings de generics...

    Surtout que si tu utilises le compilateur java 1.4 directement, il ne te mets pas de warnings, mais ça n'est pas pour ça que c'est plus fiable (au contraire).

  17. #17
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    @adiguba :
    Ah ouais quand même
    Perso mes clients en général ne connaissent pas grand chose à la technique, ce qui importe ça reste la robustesse et l'ergonomie. Mais effectivement si on travaille avec d'autres équipes info assez exigeantes, la manière de voir les choses est différente .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de code avec un tableau
    Par richard038 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/05/2006, 17h35
  2. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50
  3. [POO] Problème de code PHP avec Internet Explorer
    Par bzoler dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2006, 11h00
  4. Problème de code besoin d un petit depannage
    Par rakengoule dans le forum MFC
    Réponses: 3
    Dernier message: 10/10/2005, 16h25
  5. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo