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 :

Retourner un ID non utilisé DB4O


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Par défaut Retourner un ID non utilisé DB4O
    bonjour

    alors voila j'utilise DB4O et j'ai fait une classe qui la gère pour mon cas spécifique

    c'est a dire la gestion des pannes

    je voudrait faire une fonction qui me retourne un ID non utilisé

    j'ai essayer cela :

    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
     public String getIDunused ( String NomClasse ) {
            /* parcour DB4O et retourne un id non utilisé en fonction de la classe */
            NomClasse = NomClasse.toLowerCase() ;
            String ID = new String();
     
     
     
                ObjectSet<ordinateur> result = this.getlesOrdinateurs() ;
                ArrayList<String> tabID  = new ArrayList<String>();
                ID = null ;
     
                for (Integer i = 0; i < result.size(); i++) {
                    ordinateur UnOrdinateur = result.get(i);
                    System.out.println("i  :"+ i.toString());
                    tabID.add( UnOrdinateur.getID());
                }
                Integer j = null ;
              /*   while ((ID == null )) {
                     String sj = j.toString() ;
                     System.out.println("j  :"+j);
                     if (!(tabID.contains(sj))) { ID = sj ;}
     
                    }*/
                do {
                String sj = j.toString() ;
                     System.out.println("j  :"+j);
                     if (!(tabID.contains(sj))) { ID = sj ;}
                } while (!(ID.equals(null)) );
     
     
     
     
            return  ID ;
        }
    ca me met :
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    i :1
    i :2
    i :3
    at clst.DB4O_GestPanne.getIDunused(DB4O_GestPanne.java:163)
    at ihm.ordinateur.pan_OrdiAjout.<init>(pan_OrdiAjout.java:29)
    at ihm.Frm_main.menu_ajoutordiActionPerformed(Frm_main.java:214)
    at ihm.Frm_main.access$100(Frm_main.java:23)
    at ihm.Frm_main$2.actionPerformed(Frm_main.java:77)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
    at java.awt.Component.processMouseEvent(Component.java:6289)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6054)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4652)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:617)
    at java.awt.EventQueue$2.run(EventQueue.java:615)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    quelqu'un connait un solution ?

    cordialement

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Citation Envoyé par alex61 Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                Integer j = null ;
                do {
                String sj = j.toString() ;
                     System.out.println("j  :"+j);
                     if (!(tabID.contains(sj))) { ID = sj ;}
                } while (!(ID.equals(null)) );
    Bonjour,

    Il te signal la ligne a laquelle se déclenche l'erreur (à savoir un null pointer), je parie que c'est j qui est initialisé à null et que tu utilises derrière (j.toString())...

  3. #3
    Membre très actif
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Par défaut
    oué c'était bien ca merci

    mais maintenant j'ai une boucle infini avec les 2 algo suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               do {
                String sj = j.toString() ;
                     System.out.println("j  :"+j);
                     if (!(tabID.contains(sj))) { ID = sj ;}
                } while ((ID == null) );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     while (ID == null ) {
                     String sj = j.toString() ;
                     System.out.println("j  :"+j);
                     if ( !(tabID.contains(sj ) )) {
                         ID = sj ;
                     }
     
                    }
    il sont censé faire la même chose mais aucun ne fonctionne

  4. #4
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Le 'principe' d'une boucle infinie c'est que la condition de sortie n'est jamais atteinte... Ici ton ID est toujours égal à null. (merci pour la correction)

    Pose toi les bonnes questions, Vérifie ton algo, fait le tourner à la main, met des traces, interprète les messages d'erreurs (surtout ceux qui te donnent la ligne ou ça pose problème).

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Par défaut
    Citation Envoyé par Génoce Voir le message
    Le 'principe' d'une boucle infinie c'est que la condition de sortie n'est jamais atteinte... Ici ton ID n'est jamais égal à null.

    Pose toi les bonnes questions, Vérifie ton algo, fait le tourner à la main, met des traces, interprète les messages d'erreurs (surtout ceux qui te donnent la ligne ou ça pose problème).
    c'est l'inverse plutot, la le problème est que ID est toujours null, donc la valeur de j n'est jamais dans le tableau

  6. #6
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Citation Envoyé par MigouW Voir le message
    c'est l'inverse plutot, la le problème est que ID est toujours null, donc la valeur de j n'est jamais dans le tableau
    Oups, effectivement! je corrige

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/09/2010, 07h55
  2. Réponses: 2
    Dernier message: 05/11/2007, 11h41
  3. [OSF] setuid non utilisé
    Par ejl07 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 19/10/2007, 10h20
  4. Swap non utilisé
    Par Finidrigoler dans le forum Administration système
    Réponses: 7
    Dernier message: 10/07/2007, 21h07
  5. fermer un Access non utilisé
    Par GAGNON dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 13h08

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