Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    216

    [Java] Scanner causa una NullPointerException

    ho 2 classi, una Cliente (di una compagnia telefonica) ed una ArchivioTelefonico.
    La compagnia telefonica salva i dati relativi ai suoi clienti in un file clienti.dat.
    Il mio intento è quello di fornire la classe ArchivioTelefonico di un metodo che riempia una HashMap di Clienti e la classe Cliente di un metodo read per leggere le info dal file.. Ma mi viene lanciata un' eccezione:

    Codice PHP:
    //costruttore della classe ArchivioTelefonico
    public ArchivioTelefonico(String fileClientithrows IOException     
    {
             
    clienti = new HashMap<IntegerCliente>();
             
    chiamate = new HashMap<IntegerChiamata>();
             
    FileReader reader = new FileReader(fileClienti);
             
    Scanner scan = new Scanner(reader);
             
    this.readClienti(scan);
    }               

    private 
    void readClienti(Scanner scan)  throws IOException 
    {
             
    Cliente c Cliente.read(scan);
             while (
    != null)         
                   {
                 
    clienti.put(new Integer(c.hashCode()), c);
                 
    Cliente.read(scan);         
                   }


    La classe Cliente invece definisce cosi il metodo statico read:

    Codice PHP:
        public static Cliente read(Scanner scanthrows IOExceptionNumberFormatException     
    {
             if (!
    scan.hasNextLine()) return null;
             return new 
    Cliente(scan.nextLine(), scan.nextLine(), scan.nextLine(), scan.nextLine()); 
        } 
    Con un pò di stampe a video sono risalito al problema ed ho visto che praticamente il metodo read di Cliente ritorna un cliente null perché i diversi scan.nextLine() restituiscono tutti null

  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537

    Re: [Java] Scanner causa una NullPointerException

    Originariamente inviato da raff5184

    La classe Cliente invece definisce cosi il metodo statico read:

    Codice PHP:
        public static Cliente read(Scanner scanthrows IOExceptionNumberFormatException     
    {
             if (!
    scan.hasNextLine()) return null;
             return new 
    Cliente(scan.nextLine(), scan.nextLine(), scan.nextLine(), scan.nextLine()); 
        } 
    Sì, ma qui controlli che ha delle righe da leggere e poi ne leggi ben 3, ma tu hai la certezza della presenza di queste 3 Line?
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    216
    di3go frazie della risposta, ma ho risolto da un pò di tempo. Il problema era nel costruttore di Cliente in cui facevo

    nome = nome;
    invece di this.nome = nome;

    Che vi siano 3 righe nel file in un certo senso, per il tipo di esercizio devo darlo per scontato

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Ok.
    Quindi non avrebbe portato alla soluzione anche se ti avessi risposto in tempo...
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

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.