Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Inserimento di immagini in una LinkedList

    Ciao a tutti, mi chiamo Andrea.

    Ho un problema di NullPointerException in una sezione del mio codice. La parte interessata tratta del caricamento di un'immagine all'interno di una LinkedList.

    Metto tutto il metodo:

    codice:
     private LinkedList fpLoadImage ( String asPath ) throws IOException {
            
            Image liImage = null;
            
            File lfFile = new File ( asPath );
            String [ ]  lsListFiles = lfFile.list (  );
            
            for ( int i = 0; i < lsListFiles.length; i ++ ) {
                    
                File lfFilePath = new File ( asPath + lsListFiles [ i ] );
                image = ImageIO.read ( lfFilePath );
                llList.add ( liImage );
                
            }
            
                return llList;
            
        }
    La linkedList è di tipo <Image>

    L'errore che ho riscontrato sta nella riga, appunto, dove viene eseguito il metodo di agigunta di un nuovo elemento all'interno della LinkedList.

    Debuggando ho controllato la correttezza del percorso, identificato dall'argomento della funzione, ed il contenuto delle altre variabili.

    Se può essere d'aiuto, metto anche l'intero output di errore.

    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at slideshow.ListImages.fpLoadImage(ListImages.java:38)
    	at slideshow.ListImages.<init>(ListImages.java:23)
    	at slideshow.MainPanel.<init>(MainPanel.java:35)
    	at slideshow.ExecuteTasks.fnExecute(ExecuteTasks.java:18)
    	at slideshow.SlideShow$1.run(SlideShow.java:35)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Dalla riga 2 alla riga 6 sono errori del mio package, quindi, non centrano niente.

    Grazie, ciao.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non so quale sia la riga 38 del file, ma posso supporre che sia questa

    codice:
    llList.add ( liImage );
    La variabile llList, che non vedo dichiarata da nessuna parte, molto probabilmente è nulla (ovvero, probabilmente non è istanziata da nessuna parte). Ma per averne la certezza dovremmo sapere qual è la riga n. 38 del file ListImages.java

    Che poi, se tale variabile è dichiarata a livello di classe, che senso ha farla ritornare dal metodo col return?


    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
    Ciao, sono riuscito a risolvere 4 minuti prima che tu rispondessi. Si è proprio come dici tu: la riga 38 è quella. Mi ero dimenticato di istanziare la LinkedList, come hai giustamente ipotizzato.

    Esattamente, quella variabile è di classe. Preferisco scrivere variabili private (come da best practice) e, se necessario, farle ritornare da metodi getter piuttosto che renderle pubbliche.

    Grazie comunque per la risposta. Spero che comunque questo thread possa essere utile anche ad altre persone.

    Buona giornata, ciao!

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da andreagrimandi
    Esattamente, quella variabile è di classe. Preferisco scrivere variabili private (come da best practice) e, se necessario, farle ritornare da metodi getter piuttosto che renderle pubbliche.
    Ok ma quello non è proprio un getter
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.