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 :

Erreur de compilation sur une itération


Sujet :

avec Java

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Erreur de compilation sur une itération
    Bonjour,

    Je dois tester que l'itérateur ne dépasse pas la fin de la liste:

    J'ai codé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Connection connection = MissionDatabaseManager.OpenDatabaseCoherence();
       elementWorks.addAll(RecupereNomDesFichier());
       Iterator<ElementWork> itWorks;
       itWork.Begin()<ElementWork>;
       while( itWork != End()<ElementWork>)
       {
          elementWorks = itWork;
          itWork++;
       }
    Ce qui est refusé par le compilateur.

    J'ai deux constructions de refusées: itWordk.Begin et while( itWork != End()

    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance pour votre aide.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ce code ne veux simplement rien dire, c'est à peine si c'est du java

    http://fmora.developpez.com/tutoriel...diaire/#L4.1.2

  3. #3
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut
    J'ai repris d'après l'exemple.

    J'ai déclaré ElementWork comme structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package com.all4tec.matelo.linguistique.wizards;
     
    public class Structure 
    {
        public static class ElementWork 
        {
            int Id;
            String wsText;
        };
    }
    et je n'ai pas d'instance de current dans le code current.Id et current.wsText.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public ArrayList<ElementWork> RecupereNomDesFichier() throws ClassNotFoundException, IllegalArgumentException, NullPointerException, SQLException
        {
            if( InterbaseManager.connection == null)
                MissionDatabaseManager.OpenDatabaseCoherence();
            ArrayList<ElementWork> elementWorks = MissionDatabaseManager.ReadWork();
            // charger les fichier de la base de donnée et remplir cette liste
            for( ArrayList<ElementWork> current = elementWorks;;)
            {
                int id = current.Id;
                String str = current.wsText;
            }
            // ToDo il faut ressortir le numéro saisi par l'utilisateur
            return elementWorks;
        }

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ouais...

    Alors deux choses :

    - C'est quel exemple exactement, que tu as adapté, là ? J'en reconnais aucun...

    - Quand tu dis, avec code à l'appui :

    Citation Envoyé par JeanNoel53 Voir le message
    J ai déclaré ElementWork comme structure
    Alors, je sais pas comment dire ça poliment, avec pédagogie. C'est pas bien. C'est pas comme ça qu'on fait.
    On veut créer une classe ElementWork on fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class ElementWork 
    {
      int id;
      String text;
    }
    Y a pas d'histoire de structure ou de classe à devoir y mettre dedans. Je sais pas où tu es allé encore chercher ça.
    Par contre je constate que c'est récurrent chez toi, alors que c'est pas franchement une habitude typique du débutant.
    Inventer n'importe quoi au hasard, au lieu de se demander comment c'est censé marcher, ça c'est un truc qui est vraiment à toi. Et il faudrait que tu le perdes, en fait. Que tu arrêtes d'inventer des trucs. À la place il faudrait que tu cherches comment on fait (chercher pas au hasard, chercher dans les cours, les tutoriels, comment font les gens qui savent,) et que tu essaies de faire pareil et, si possible, de comprendre un peu le principe.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut
    Je l'ai fait mais ça n'a rien changé.

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 754
    Points : 376
    Points
    376
    Par défaut
    Sauf erreur de ma part les classes internes existent en java non ? Même si ici je ne vois pas l'utilité.

    Sinon pour parcourir un itérateur tu as une méthode hasNext dont tu peux te servir.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par JeanNoel53 Voir le message
    Je l'ai fait mais ça n'a rien changé.
    Euh... Tu as fait quoi et ça a rien changé ? Je t'ai demandé de quel exemple tu t'inspires.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    La classe dans la classe, ça sert à rien, je sais pas d'ou tu sort ça.

    Ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for( ArrayList<ElementWork> current = elementWorks;;)
            {
                int id = current.Id;
                String str = current.wsText;
            }
    Ne veux décidément rien dire. current est déclaré comme un ArrayList. Un ArrayList ça n'a ni champ 'id' ni champ 'wsText'. Ta boucle n'a pas de critère d'arrêt, donc même si ça compilait, ça tournerait en boucle à l'infini. Je t'ai fourni un exemple simple de partcours de list, tu as juste à le réutiliser. La seule chose qui ressemble à l'exemple dans le code, c'est qu'il y a un 'for', c'est tout.
    J'ai l'impression que tu jette du code dans ton fichier sans avoir la moindre idée de ce que tu fais et que tu espère à l'arrivée que ça fasse ce que tu veux. Ce n'est pas comme ça qu'on programme. Il faut être rigoureux et savoir ce que l'on fait, étape par étape.

  9. #9
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut
    L'arrayList est constituée d'ElementWorks et donc je m'attends à retrouver les champs Id et wsText quand je parcours la liste.

    Je vous mets mon code dans l'état où il se trouve:
    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
        public ArrayList<ElementWork> RecupereNomDesFichier() throws ClassNotFoundException, IllegalArgumentException, NullPointerException, SQLException
        {
            if( InterbaseManager.connection == null)
                MissionDatabaseManager.OpenDatabaseCoherence();
            ArrayList<ElementWork> elementWorks = MissionDatabaseManager.ReadWork();
            // charger les fichier de la base de donnée et remplir cette liste
            Iterator<ElementWork> itWork;
            while( itWork.hasNext())
            {
                elementWorks = itWork;
                int id = elementWorks.Id;
                String str = elementWorks.wsText;
            }
            // ToDo il faut ressortir le numéro saisi par l'utilisateur
            return elementWorks;
        }
    C'est dans la boucle while que j'ai des erreurs de compilation elemtnWorks = itWord; itword n'est pas reconnue.
    Ultérieurement les champs de ElementWork ne sont pas reconnus.
    Il y a un autre problème c'est que le new n'est plus reconnu dnas la couche de plus bas niveau
    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
    	static ArrayList<Structure.ElementWork> ReadWork() throws SQLException
    	{
    		   ArrayList<ElementWork> pListText;
    		   int iNbResultFound;
    		   pListText = new ArrayList<Structure.ElementWork>();
    		   String cmd = "SELECT iIdDoc, vcDocument FROM T_WORK_INFORMATION WHERE siIdStateDocument = 3";
    		   ResultSet resultset = InterbaseManager.ExecuteSelectRequest( cmd);
    		   ResultSetMetaData rsmd = resultset.getMetaData();
    		   iNbResultFound = 0;
    		   try 
    		   {
    			   while( resultset.next())
    			   {
    				    iNbResultFound++;
    				    WorkElement = new Structure.ElementWork();
    					WorkElement.Id = resultset.getInt( "iIdDoc");
    					WorkElement.wsText = resultset.getString( "vcDocument");
    					pListText.add( WorkElement);
    				}
    		   }
    		   catch( SQLException ex)
    		   {
    			   ex.printStackTrace();
    		   }
    		   return( pListText);
    	   }

  10. #10
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Quelques corrections sur le premier bout de code avec des commentaires

    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
        public ArrayList<ElementWork> RecupereNomDesFichier() throws ClassNotFoundException, IllegalArgumentException, NullPointerException, SQLException
        {
            if( InterbaseManager.connection == null)
                MissionDatabaseManager.OpenDatabaseCoherence();
            ArrayList<ElementWork> elementWorks = MissionDatabaseManager.ReadWork();
            // charger les fichier de la base de donnée et remplir cette liste
            Iterator<ElementWork> itWork;
            while( itWork.hasNext()) // erreur de compilation ici : itWork n'est pas instancié. il faudrait le déclarer juste au dessus avec itWork = elementWorks.iterator();
            {
                elementWorks = itWork; // erreur de compilation ici : elementWorks est une ArrayList et tu essayes de le faire pointer vers un ElementWork ... Ce que tu veux faire, c'est : ElementWork element = itWork.next(); (une fois que tu auras récupéré correctement on iterator)
                int id = element.Id; 
                String str = element.wsText;
            }
            // ToDo il faut ressortir le numéro saisi par l'utilisateur
            return elementWorks;
        }

    Pour le deuxième bout de code : fait déjà disparaitre tous les "Structure" de ton code si tu as créé une classe ElementWork comme indiqué par thelvin..
    Je ne suis pas mort, j'ai du travail !

  11. #11
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Merci de tes indications
    J'ai repris le code; Ça va mieux, mais il reste une erreur.
    Je te met les déclarations et le code
    D'abord les déclarations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	private LinguistiqueImportWizardPage linguistiquePage;
    	private ElementWork elementWork;
    	private boolean initialized = false;
    puis le code
    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
    	public ArrayList<ElementWork> RecupereNomDesFichier() throws ClassNotFoundException, IllegalArgumentException, NullPointerException, SQLException
    	{
    		if( InterbaseManager.connection == null)
    			MissionDatabaseManager.OpenDatabaseCoherence();
    		ArrayList<ElementWork> elementWorks = MissionDatabaseManager.ReadWork();
    		// charger les fichier de la base de donnée et remplir cette liste
    		Iterator<ElementWork> itWork;
    		while( itWork.hasNext())
    		{
    			elementWork = itWork;
    			int id = elementWork.Id;
    			String str = elementWork.wsText;
    		}
    		// ToDo il faut ressortir le numéro saisi par l'utilisateur
    		return elementWorks;
    	}
    la déclaration de itWork est juste avant le while
    while (itWork.hasNext()) est reconnu par le compilateur
    elemntwork = itWork; sort en erreur
    après le code est bien compilé.
    Je dois résoudre l'itWork pour rééssayer

  12. #12
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Regarde bien ce que j'ai posté, il y a la réponse à ta question dedans
    Je ne suis pas mort, j'ai du travail !

  13. #13
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Bonjour
    J'ai répondu à toutes tes indications. J'ai toujours une erreur. Mais itWork est bien initialisé

  14. #14
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Relis bien tout ce qui est indiqué sur la ligne 10 de mon code... Et si tu ne trouves toujours pas, poste ton code (parce que ma boule de cristal est en réparation)
    Je ne suis pas mort, j'ai du travail !

  15. #15
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut il y a une erreur dans ton code
    tu dis que la ligne while( itWork.hasNext()) ne compile pas
    dans la réalité il compile
    en fait il fallait juste initialiser itWork à null avant la boucle while et il est de bon ton de caster itWork dans son utilisation

  16. #16
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Oui donc ça compilait pas avant que tu le mettes à null. Donc il s'est pas du tout trompé et tu racontes n'importe quoi.

    Et quand tu le mets à null ça compile mais ça marche pas. Donc c'est pas ce qu'il fallait faire.
    Il n'est absolument pas bon de caster quoi que ce soit, mais on est pas à ça près .

    Je t'ai déjà demandé de regarder un tutoriel sur comment on boucle sur une Collection, et de faire comme ce tutoriel.
    Si tu veux qu'on t'aide, fais ce qu'on te dit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Erreur de compilation sur une fonction utilisant les flux
    Par alves1993 dans le forum Débuter
    Réponses: 10
    Dernier message: 19/07/2013, 11h56
  2. Réponses: 3
    Dernier message: 23/09/2010, 17h05
  3. Erreur de compilation sur une librairie en mode debug
    Par bakaneko dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2006, 16h32
  4. Erreur à la compile sur VC++ 6
    Par norwy dans le forum Développement
    Réponses: 1
    Dernier message: 10/11/2005, 13h51
  5. Delphi 7 update 1 - Erreur de compil sur SQLExpr
    Par RamDevTeam dans le forum Bases de données
    Réponses: 14
    Dernier message: 02/11/2005, 17h44

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