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

Collection et Stream Java Discussion :

Problème généricité sur ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut Problème généricité sur ArrayList
    Bonjour à tous !

    Désolé d'être de retour mais j'ai encore un problème, j'ai essayé d'harmoniser mon code (créer des classes correspondant à mes besoins) mais ça m'a mis pas mal la pagaille et plus particulièrement sur une classe où je gère les fichiers txt.
    J'ai une méthode qui me permet d'écrire dans un fichier temporaire dans laquelle je luis passe un paramètre de type List, avant de la transformer elle était écrite ainsi :

    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
     
        /** ECRITURE DES DONNEE POUR LE CLIENT */
        void WriteFileTmp(List<String[]> listData, String sTypeAction, int iDimensionArray) throws IOException{       
     
            ArrayList<String[]> array = new ArrayList<>(listData);
     
            try (FileWriter ffw = new FileWriter(f)) {
                ffw.write(sTypeAction);
                ffw.write("\r\n");
                for (String[] next : array) {
                    try{
                        for(int i = 0; i <= iDimensionArray; i++){
                            ffw.write(next[i]);
                            ffw.write("\r\n");
                        }                  
                    }catch (Exception e){
                        jop1.showMessageDialog(null, "Impossible d'écrire dans le fichier temporaire\n" +
                                "Détail de l'erreur :\n" + e.toString(), "Erreur", JOptionPane.ERROR_MESSAGE);
                    }
                }
                ffw.write(sTypeAction);
                ffw.write("\r\n");
                ffw.close(); // fermer le fichier à la fin des traitements 
            }
        }
    et maintenant je veux que celle-ci soit générique car j'ai une créé une classe Client qui contient toutes les méthodes dont j'ai besoin (getFirstname, getLastname, etc.) et dont je fais hériter ma collection de type List qui est déclarée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private static List<Client> listCustomer;
    Pour finir, j'ai tenté d'écrire ma méthode comme ci-dessous mais ça ne fonctionne au moment où je veux écrire via le code "ffw.write(toto);"
    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
     
        void WriteFileTmp(List<T[]> listData, String sTypeAction, int iDimensionArray) throws IOException{       
     
            ArrayList<T[]> array = new ArrayList<>(listData);
     
            try (FileWriter ffw = new FileWriter(f)) {
                ffw.write(sTypeAction);
                ffw.write("\r\n");
                for (int u = 0; u < array.size(); u++) {
                    try{
                        for(int i = 0; i <= iDimensionArray; i++){
                        	T[] toto = array.get(i);
                            ffw.write(toto);
                            ffw.write("\r\n");
                        }                  
                    }catch (Exception e){
                        jop1.showMessageDialog(null, "Impossible d'écrire dans le fichier temporaire\n" +
                                "Détail de l'erreur :\n" + e.toString(), "Erreur", JOptionPane.ERROR_MESSAGE);
                    }
                }
                ffw.write(sTypeAction);
                ffw.write("\r\n");
                ffw.close(); // fermer le fichier à la fin des traitements 
            }
        }
    Je vous remercie à tous pour votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    List<T[]> et List<Client> ne pourront jamais correspondre. Le premier attends un tableau dans chaque case de la liste, le second attents un Client. Et un Client ce n'est pas un tableau.

    Tu devrais prendre les List<T> pas des List<T[]>


    Et si ça ne plante qu'à l'exécution, c'est que t'as foutu la pagaille lors de l'appel avec des typecasting foireux, car le compilateur aurait du interdire ça directement.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    En dehors de ton problème de type, tu devrais au moins encapsuler ton FileWriter dans un BufferedWriter (new BufferedWriter(new FileWriter(...), voire tout simplement Files.newBufferedWriter(f.toPath()). Et utiliser sa méthode newLine() pour les passages à la ligne : le caractère étant différent selon les plateformes, le mettre en dur peut-être problématique.

    Tu peux ensuite encapsuler le BufferedWriter dans un PrintWriter, ce qui te permettra de faire comme avec System.out : des print(), println(), format(), printf()...

    Sinon tu n'as pas besoin d'appeler close() explicitement : tu utilises la structure try-with-resource(try (FileWriter ffw = new FileWriter(f)) {), qui fait que le writer sera automatiquement fermé à la sortie du bloc try.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut
    Merci tchize_ pour ta réponse, j'ai fait quelques modifs dont celle que tu m'as noté et le compilateur ne m'a pas insulté. Après essai en débogage, je remplis bien mon attribut "array" et je me suis rendu compte que je ne vais certainement pas pouvoir récupérer son contenu dans le sens ou, l'attribut "array" a hérité de ma classe client et que celle-ci contient que des méthodes get (firstname, lastname, ...).

    Je ne vois pas comment faire une boucle pour récupérer les valeurs ?

    Je post mon code que j'ai modifié pour l'écriture dans le fichier ainsi que ma classe Client où je pense qu'il va falloir que j'apporte une modif

    Méthode pour écrire dans le fichier texte :
    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
     
        <T> void WriteFileTmp(List<T> listData, String sTypeAction, int iDimensionArray) throws IOException{       
     
            ArrayList<T> array = new ArrayList<>(listData);
     
            try (FileWriter ffw = new FileWriter(f)) {
                ffw.write(sTypeAction);
                ffw.write("\r\n");
                for (T next : array) {
                    try{
                        for(int i = 0; i <= iDimensionArray; i++){
                            ffw.write(array.get(i).toString());
                            ffw.write("\r\n");
                        }                  
                    }catch (Exception e){
                        jop1.showMessageDialog(null, "Impossible d'écrire dans le fichier temporaire\n" +
                                "Détail de l'erreur :\n" + e.toString(), "Erreur", JOptionPane.ERROR_MESSAGE);
                    }
                }
                ffw.write(sTypeAction);
                ffw.write("\r\n");
                ffw.close(); // fermer le fichier à* la fin des traitements 
            }
        }
    La classe Client :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    public class Client {
     
        private final String firstname;
        private final String lastname;
        private final String id;
        private final String type;    
        private final String streetnumber;
        private final String streetname;
        private final String zipcode;
        private final String city;
        private final String country;
        private final String phone;
        private final String email;
        private final String memoid;
     
        public Client(String firstname, String lastname, String id, String type, 
                      String streetnumber, String streetname, String zipcode, String city, 
                      String country, String phone, String email, String memoid){
     
            this.firstname = firstname;
            this.lastname = lastname;
            this.id = id;
            this.type = type;    
            this.streetnumber = streetnumber;
            this.streetname = streetname;
            this.zipcode = zipcode;
            this.city = city;
            this.country = country;
            this.phone = phone;
            this.email = email;
            this.memoid = memoid;
        }
     
        public String getLastname() {
            return lastname;
        }
     
        public String getFirstname() {
            return firstname;
        }
     
        public String getId() {
            return id;
        }
     
        public String getType() {
            return type;
        }
     
        public String geStreetnumber() {
            return streetnumber;
        }
     
        public String getStreetname() {
            return streetname;
        }
     
        public String getZipcode() {
            return zipcode;
        }
     
        public String getCity() {
            return city;
        }
     
        public String getCountry() {
            return country;
        }
     
        public String getPhone() {
            return phone;
        }
     
        public String getEmail() {
            return email;
        }
     
        public String getMemoId() {
            return memoid;
        }    
    }
    Merci d'avance.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Tu ne peux plus en effet faire de boucle pour écrire les propriétés : tu es obligé d'appeler chaque méthode successivement, pour écrire chaque propriété à la suite (enfin, il y aurait moyen par réflexion éventuellement). Par contre, il y a un petit truc que je ne comprends pas : dans tes autres posts tu parles de fichier xml. Pourquoi ici un fichier texte ?

    Sinon, autre chose que je n'avais pas bien vu tout à l'heure, mais le JOptionPane pour le message d'erreur, n'est peut-être pas une solution très viable : s'il y a des erreurs d'I/O, tu vas avoir une répétion agaçante de message, et le fichier sera pourri à la fin, voire absent : autant abandonner direct à la première erreur.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Par défaut
    Merci Joël pour tes réponses alors à mon tour de t'en apporter :

    1) J'ai appliqué ce que tu m'as dit de faire dans ton 1er message c'est à dire passer de write à bufferwriter et donc ça me donne ça (je n'ai pas pu essayer dans le sens ou je suis bloqué dans la boucle) :
    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
     
        <T> void WriteFileTmp(List<T> listData, String sTypeAction, int iDimensionArray) throws IOException{
     
            ArrayList<T> array = new ArrayList<>(listData);
     
            try (BufferedWriter ffw = Files.newBufferedWriter(f.toPath())) {
                ffw.write(sTypeAction);
                ffw.newLine();
                for (T next : array) {
                    for(int i = 0; i <= iDimensionArray; i++){
                        ffw.write(array.get(i).toString());
                        ffw.newLine();
                    }                  
                }
                ffw.write(sTypeAction);
                ffw.newLine();
            }catch (Exception e){
                jop1.showMessageDialog(null, "Impossible d'écrire dans le fichier temporaire\n" +
                                             "Détail de l'erreur :\n" + e.toString(), "Erreur", JOptionPane.ERROR_MESSAGE);
            }
        }
    tu es obligé d'appeler chaque méthode successivement
    2) Si j'utilise la généricité comment je peux récupérer les méthodes de ma classe ? Tu veux parler de la réflexivité? Si c'est ça je me suis lancé dans une aventure digne de la Indiana Jones mais je crois que c'est ça.

    Pourquoi ici un fichier texte ?
    3) Justement dans un de mes autres posts tu m'avais notifié d'utiliser un fichier texte, pourquoi ? Parce que dans le sujet de mon projet il faut que en cas de plantage du logiciel je puisse récupérer les données donc ce que je fais :
    1 - A l'ouverture de la jFrame ou jDialog je charge dans une collection de type List les données qui sont dans mon fichier XML.
    2 - Ensuite, lorsque l'utilisateur agit sur les menus d'action (ajouter, modifier et supprimer) j'enregistre les données dans un fichier texte pour ne pas polluer mon fichier XML.
    3 - Dès que l'utilisateur ferme la jFrame ou la jDialog, je met à jour le fichier XML via les données enregistrés dans le fichier et si tout est bon je supprime celui-ci. Ainsi, si l'application se ferme par inadvertance les fichiers texte seront toujours présent et par conséquent je pourrais récupérer les données.

    Après, est ce que j'ai bien fait ou est ce que j'ai bien compris ce que tu m'as dit ... Je ne sais pas ?

    Sinon, autre chose que je n'avais pas bien vu tout à l'heure, mais le JOptionPane pour le message d'erreur, n'est peut-être pas une solution très viable : s'il y a des erreurs d'I/O, tu vas avoir une répétion agaçante de message, et le fichier sera pourri à la fin, voire absent : autant abandonner direct à la première erreur.
    4) Je me suis rendu compte effectivement qu'il était mal placé et que d'ailleur j'avais un try catch en trop, je les donc modifié et apporté la mise dans le code ci-dessus. Est ce que c'est ce que tu voulais me dire ?

    Désolé, si je met du temps à répondre mais avant j'essais de mettre en place et forme les différentes remarques que vous m'apportez pour ensuite les poster, vu que je ne suis pas une flèche ça prend du temps.

    Merci.

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jb_One73 Voir le message

    2) Si j'utilise la généricité comment je peux récupérer les méthodes de ma classe ? Tu veux parler de la réflexivité? Si c'est ça je me suis lancé dans une aventure digne de la Indiana Jones mais je crois que c'est ça.
    1. A la base avec la généricité, tu ne peux effectivement pas récupérer les méthodes de ta classe
    2. Mais le but de la généricité c'est de faire la partie générique, pas la partie spécifique. On doit déléguer la partie spécifique.

      Par exemple, on peut faire :

      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
      public abstract class AbstractPropertySaver<T> {
       
         public void write(List<T> objects) {
       
             ...
       
             for(T object : objects) {
                  Map<String, String> properties = getProperties(object);
                  for(Map.entry<String, String> entry : properties.entrySet()) {
                      ffw.write( entry.getKey() + " = " + writer.writer( entry.getValue() ) );
                      ffw.newLine();
                  }
             }
       
             ...
       
         }
       
         protected abstract Map<String, String> getProperties(T object);
       
      }
      Ensuite, on fait
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      public class ClientPropertySaver extends PropertySave<Client> {
       
           ...
       
      }
    3. Ensuite, on peut faire de la réflexion mais en générique, mais il faut une base (par exemple, parcourir les méthodes dont le nom commence par get)



    Citation Envoyé par Jb_One73 Voir le message

    3) Justement dans un de mes autres posts tu m'avais notifié d'utiliser un fichier texte, pourquoi ? Parce que dans le sujet de mon projet il faut que en cas de plantage du logiciel je puisse récupérer les données donc ce que je fais :
    1 - A l'ouverture de la jFrame ou jDialog je charge dans une collection de type List les données qui sont dans mon fichier XML.
    2 - Ensuite, lorsque l'utilisateur agit sur les menus d'action (ajouter, modifier et supprimer) j'enregistre les données dans un fichier texte pour ne pas polluer mon fichier XML.
    3 - Dès que l'utilisateur ferme la jFrame ou la jDialog, je met à jour le fichier XML via les données enregistrés dans le fichier et si tout est bon je supprime celui-ci. Ainsi, si l'application se ferme par inadvertance les fichiers texte seront toujours présent et par conséquent je pourrais récupérer les données.

    Après, est ce que j'ai bien fait ou est ce que j'ai bien compris ce que tu m'as dit ... Je ne sais pas ?
    Non, j'ai parlé d'écrire dans un fichier temporaire au lieu d'écrire directement dans le fichier final. Mais j'ai parlé de renommer le fichier temporaire. Quand je parlais de fichier temporaire, je parlais de fichier xml.

    En gros, si ton fichier s'appelle "fichier.xml", tu fais un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File file = new File("fichier.xml");
    ecrireEnXmlDans(file);
    Je parlais de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    File file = new File("fichier.xml");
    File tmpfile = new File("fichier.xml.tmp");
    ecrireEnXmlDans(tmpfile);
    if ( file.exists() ) file.delete();
    tmpFile.renameTo( file );
    Ou en version "étendue"
    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
     
    File oldFile = new File("fichier.xml.bak");
    if ( oldFile.exists() ) { // on supprime l'ancien .bak (on pourrait gérer ça plus finement : s'il y a un .bak, c'est qu'il y a eu un problème précédement : on aurait dû faire une procédure manuelle de récupération)
        oldFile.delete();
    }
    File realFile = new File("fichier.xml");
    File file = new File("fichier.xml.temp");
    ecrireEnXmlDans(file); // on fait la sauvegarde dans le tmp
    if ( file.exists() ) { // s'il existe c'est que la sauvegarde a réussie
       if( realFile.exists() ) { // s'il exisre un fichier sauvegardé précédemment
          if ( !realFile.renameTo( oldFile ) ) { // on le renomme en .bak (on pourra récupérer les données manuellement en cas de problème)
              // on préfère abandonner la sauvegarde, plutôt que de risquer de perdre le bon fichier
              throw new IOException("Impossible de renommer " + file.getName() +" en " + oldFile.getName() );
          }
      }
      if ( file.renameTo( realFile ) ) { // on renomme le fichier temporaire vers le bon nom
         if ( oldFile.exists( ) ) {
             oldFile.delete(); // on peut supprimer le .bak
         }
      }
      else {
          // il y a eu un problème : 
          if (oldFile.exist() && !oldFile.renameTo(realFile) ) {
              throw new IOException("Erreur pendant la sauvegarde : impossible de récupérer le fichier " + oldFile.getName() + ".\n Veuillez récupérer ce fichier manuellement");
          }
             throw new IOException("Sauvegarde échouée : impossible de renommer " + file.getName() +" en " + realFile.getName() + " - les données peuvent être récupérées manuellement dans " + file );
      }
    }
    Les tests et exception gérées pour "!renameTo" risque peu d'arriver : c'est juste par sécurité.


    Citation Envoyé par Jb_One73 Voir le message
    4) Je me suis rendu compte effectivement qu'il était mal placé et que d'ailleur j'avais un try catch en trop, je les donc modifié et apporté la mise dans le code ci-dessus. Est ce que c'est ce que tu voulais me dire ?
    Oui, on peut faire comme ça. Juste pour le catch(Exception) : à priori un catch(IOException) devrait suffire (les RuntimeException, genre NullPointerException, tu devrais les résoudre lors du développement, et ne devrait pas apparaitre pendant l'exécution final, si tu as tout correctement fait (mais ça peu arriver certes)). Toujours catcher les exceptions au plus spécifique, plutôt qu'au plus large (c'est consommateur en temps de catcher trop large, et en plus tu risques de catcher des exceptions qu'il faudrait ne pas traiter de cette manière - je parle généralement - et surtout ne pas les voir). Je te conseille par ailleurs de toujours loguer les stacktraces : la plupart des utilisateurs ferment ce genre de messages sans même les lire et t'appellent pour te dire "ça marche pas", et toi tu n'as rien pour savoir ce qui s'est passé...)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Problème de pointeur sur ArrayList
    Par Diablo_22 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 01/05/2008, 10h39
  2. Problème de warning sur ArrayList
    Par chadnour dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 27/01/2008, 19h49
  3. Problème innerHTML sur div !!!
    Par aburner dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/01/2005, 09h23
  4. [CR8] Problème tableau sur plusieurs pages???
    Par christophe28 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 02/11/2004, 15h46
  5. [MFC] Problème pointeur sur une classe
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 14/04/2004, 14h17

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