Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Algoritmi genetici

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    residenza
    matrix
    Messaggi
    56

    Algoritmi genetici

    Salve a tutti, ho un problema nel programma a riga 112(nel ciclo for) ed ho capito il problema ma non so come risolverlo, in pratica cerco di accedere ad una lista ma certe volte gli elementi finali della lista non sono presenti(sono settati a null) e non so come risolverlo, qualcuno può aiutarmi?

    Il codice lo trovate al link:
    http://pastebin.com/U6eaDeyj classe View

    http://pastebin.com/u/astolfo96 questi sono tutti i files
    Ultima modifica di astolfo96; 26-06-2015 a 14:00 Motivo: \

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Innanzitutto, se anche vi sono degli oggetti nulli all'interno della lista, non è certo la riga 112 a dare problemi. Quella riga ritorna semplicemente il valore contenuto nella lista alla posizione i-esima, che sia nullo o meno. Diverso se è la lista stessa ad essere nulla, ma in quel caso il problema te lo ritrovi alla riga precedente, quando il for cerca di accedere al metodo size().

    Se c'è la possibilità che un elemento della lista sia nullo, quello che va fatto è il controllo della non-nullità dell'oggetto ritornato prima di effettuare su di esso alcuna operazione:

    codice:
    for(int i=0; i<cibo.size(); i++) {
       Cibo c2 = (Cibo) cibo.get(i);   // Questa riga non dà alcun problema con gli elementi nulli
       if (c2 != null) {
          Point p = c2.getPos();
          g.setColor(Color.black);
          g.drawOval(p.x, p.y, 
       }
    }

    Poi, sei tu che decidi cosa fare nel caso in cui l'oggetto sia nullo... nell'esempio che ho postato io semplicemente si passa oltre, saltando l'eventuale elemento nullo.

    PS: sono già diversi anni che sono stati introdotti i Generics (da Java 5... ora siamo alla 8). Sarebbe il caso di usarli.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    residenza
    matrix
    Messaggi
    56
    Anche con questa soluzione il problema persiste, altre ipotesi? Ora che mi hai fatto notare che non è quello il problema, non so dove mettere le mani

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Se hai delle eccezioni, postane lo stackTrace. Lo stackTrace di un eccezione ti dice tutto:
    1) Descrizione del problema
    2) Causa del problema
    3) Esatta riga di codice dove si è verificata (compreso il nome del file .java)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    residenza
    matrix
    Messaggi
    56
    java.lang.NullPointerException
    at java.util.LinkedList.node(LinkedList.java:577)
    at java.util.LinkedList.get(LinkedList.java:477)
    at evo.View.coloreCibo(View.java:112)
    at evo.View.paintComponent(View.java:99)
    at evo.View.paint(View.java:68)
    at javax.swing.RepaintManager$3.run(RepaintManager.ja va:822)
    at javax.swing.RepaintManager$3.run(RepaintManager.ja va:794)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPri vilege(ProtectionDomain.java:75)
    at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:794)
    at javax.swing.RepaintManager.paintDirtyRegions(Repai ntManager.java:769)
    at javax.swing.RepaintManager.prePaintDirtyRegions(Re paintManager.java:718)
    at javax.swing.RepaintManager.access$1100(RepaintMana ger.java:62)
    at javax.swing.RepaintManager$ProcessingRunnable.run( RepaintManager.java:1680)
    at java.awt.event.InvocationEvent.dispatch(Invocation Event.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.j ava:744)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPri vilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java: 714)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:82)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.