Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102

    Variabile might not have been initialized

    Salve, non riesco a capire dove sbaglio... vorrei scrivere su un file di testo 4 elementi String di classe Contatto in "Rubrica.txt"... con questo sorgente

    codice:
    import java.io.*;
    class Scrivi{
    	public void scrivi(){
    		Contatto c = new Contatto();
    		FileWriter f;
    		PrintWriter fout;
    		try {
    			f = new FileWriter("Rubrica.txt");
    			fout = new PrintWriter(f);
    		}
    		catch (IOException e){
    			System.out.println("Errore: " + e.getMessage());
    			System.exit(1);
    		}
    		while (true){
    			c.Leggi();
    			fout.println(c.nome+" "+c.cognome+" "+c.telefono+" "+c.indirizzo);
    			fout.flush();
    			if (c.y == 'n') break;
    		}
    		f.close();
    	}
    }
    il compilatore genera i seguenti errori:


    codice:
    C:\Users\Valerio\Desktop\java\rubrica>javac Scrivi.java
    Scrivi.java:18: error: variable fout might not have been initialized
                            fout.println(c.nome+" "+c.cognome+" "+c.telefono+" "+c.i
    ndirizzo);
                            ^
    Scrivi.java:22: error: variable f might not have been initialized
                    f.close();
                    ^
    Scrivi.java:22: error: unreported exception IOException; must be caught or decla
    red to be thrown
                    f.close();
                           ^
    3 errors
    
    C:\Users\Valerio\Desktop\java\rubrica>
    Il terzo errore posso capirlo perché non ho messo i costrutti... ma i primi due? Il controllo try-catch potrebbe non inizializzare la variabile come dice il compilatore, ma nel catch ho impostato exit, quindi una tale condizione non si potrebbe mai verificare!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: Variabile might not have been initialized

    Originariamente inviato da valerio65
    Salve, non riesco a capire dove sbaglio... vorrei scrivere su un file di testo 4 elementi String di classe Contatto in "Rubrica.txt"... con questo sorgente

    codice:
    import java.io.*;
    class Scrivi{
    	public void scrivi(){
    		Contatto c = new Contatto();
    		FileWriter f;
    		PrintWriter fout;
    		try {
    			f = new FileWriter("Rubrica.txt");
    			fout = new PrintWriter(f);
    		}
    		catch (IOException e){
    			System.out.println("Errore: " + e.getMessage());
    			System.exit(1);
    		}
    		while (true){
    			c.Leggi();
    			fout.println(c.nome+" "+c.cognome+" "+c.telefono+" "+c.indirizzo);
    			fout.flush();
    			if (c.y == 'n') break;
    		}
    		f.close();
    	}
    }
    il compilatore genera i seguenti errori:


    codice:
    C:\Users\Valerio\Desktop\java\rubrica>javac Scrivi.java
    Scrivi.java:18: error: variable fout might not have been initialized
                            fout.println(c.nome+" "+c.cognome+" "+c.telefono+" "+c.i
    ndirizzo);
                            ^
    Scrivi.java:22: error: variable f might not have been initialized
                    f.close();
                    ^
    Scrivi.java:22: error: unreported exception IOException; must be caught or decla
    red to be thrown
                    f.close();
                           ^
    3 errors
    
    C:\Users\Valerio\Desktop\java\rubrica>
    Il terzo errore posso capirlo perché non ho messo i costrutti... ma i primi due? Il controllo try-catch potrebbe non inizializzare la variabile come dice il compilatore, ma nel catch ho impostato exit, quindi una tale condizione non si potrebbe mai verificare!
    Inizializza quelle due variabili a null e fai contento il compilatore.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Oh! Teoricamente il non inizializzarle sarebbe null, ma praticamente vedo che non è così... grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da valerio65
    Oh! Teoricamente il non inizializzarle sarebbe null, ma praticamente vedo che non è così... grazie mille
    Non è esattamente così, e non c'è alcun "teoricamente" e "praticamente", ma ci sono le specifiche del linguaggio: le variabili locali non sono inizializzate automaticamente, i campi delle classi invece vengono inizializzati ai valori di default dei vari tipi.
    Per maggiori informazioni leggi le specifiche.

    "null" e "non inizializzata" sono due cose diverse, e si escludono. Se è stato il programmatore ad inizializzare o è stato fatto automaticamente, quello è un altro paio di maniche.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Originariamente inviato da Kaamos
    Non è esattamente così, e non c'è alcun "teoricamente" e "praticamente", ma ci sono le specifiche del linguaggio: le variabili locali non sono inizializzate automaticamente, i campi delle classi invece vengono inizializzati ai valori di default dei vari tipi.
    Per maggiori informazioni leggi le specifiche.

    "null" e "non inizializzata" sono due cose diverse, e si escludono. Se è stato il programmatore ad inizializzare o è stato fatto automaticamente, quello è un altro paio di maniche.
    Ok, grazie della delucidazione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.