Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    In realtà anche trovarsi di fronte agli errori è utile (anzi, molto più che utile): in questo modo impari a prendere confidenza con i messaggi di errore del compilatore e a destreggiarti per capirli e risolverli.

    Prendiamo il tuo sorgente (così com'era nel tuo primo post) e proviamo a compilarlo. I messaggi del compilatore sono:

    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class Collection
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
    ^
    ForeachTest.java:5: cannot find symbol
    symbol  : class string
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
               ^
    ForeachTest.java:5: cannot find symbol
    symbol  : class ArrayList
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
                                  ^
    3 errors
    Il compilatore dice che ci sono 3 errori e te li segnala tutti (con tanto di "punto in cui è stato generato" tramite il simbolo " ^ "). Vediamoli uno per uno:

    Primo errore:
    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class Collection
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
    ^
    cannot find symbol: significa che ha incontrato un "simbolo" (ovvero una parola) che non è riuscito a riconoscere (può essere una variabile mai dichiarata, il nome di una classe che non esiste, ecc). Lui ti dice tutto:

    1) L'errore lo ha trovato nel file "ForeachTest.java" alla riga 5 (ForeachTest.java:5)
    2) Il simbolo che non è riuscito ad identificare è la scritta "Collection" in un posto in cui si aspetta il nome di una classe.
    3) Tale simbolo è stato trovato dentro alla classe ForeachTest
    4) Ti fa vedere la riga di codice e il punto esatto ( ^ ) dove compare il simbolo non trovato.

    Quindi lui ti sta dicendo che tu hai scritto "Collection" ma che lui non sa cosa sia, e questo, quando avrai un po' di pratica, è eloquente: non hai "importato" la classe Collection... manca l'import.

    Secondo errore:
    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class string
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
               ^
    Di nuovo: cannot find symbol. Stavolta il simbolo è la scritta "string". In questo caso è banale: il nome della classe è stato scritto male perchè è in minuscolo, mentre i nomi delle classi (nel core standard di Java) sono tutte con la maiuscola

    Terzo errore:
    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class ArrayList
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
                                  ^
    Di nuovo... cannot find symbol. Sta volta il simbolo è "ArrayList". Il nome della classe è scritto giusto, quindi significa solo che non trova tale classe... ed infatti, manca l'import.


    Ciao.
    Ultima modifica di LeleFT; 12-07-2016 a 11:35
    "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

  2. #2

    Grazie ancora!

    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    In realtà anche trovarsi di fronte agli errori è utile (anzi, molto più che utile): in questo modo impari a prendere confidenza con i messaggi di errore del compilatore e a destreggiarti per capirli e risolverli.

    Prendiamo il tuo sorgente (così com'era nel tuo primo post) e proviamo a compilarlo. I messaggi del compilatore sono:

    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class Collection
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
    ^
    ForeachTest.java:5: cannot find symbol
    symbol  : class string
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
               ^
    ForeachTest.java:5: cannot find symbol
    symbol  : class ArrayList
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
                                  ^
    3 errors
    Il compilatore dice che ci sono 3 errori e te li segnala tutti (con tanto di "punto in cui è stato generato" tramite il simbolo " ^ "). Vediamoli uno per uno:

    Primo errore:
    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class Collection
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
    ^
    cannot find symbol: significa che ha incontrato un "simbolo" (ovvero una parola) che non è riuscito a riconoscere (può essere una variabile mai dichiarata, il nome di una classe che non esiste, ecc). Lui ti dice tutto:

    1) L'errore lo ha trovato nel file "ForeachTest.java" alla riga 5 (ForeachTest.java:5)
    2) Il simbolo che non è riuscito ad identificare è la scritta "Collection" in un posto in cui si aspetta il nome di una classe.
    3) Tale simbolo è stato trovato dentro alla classe ForeachTest
    4) Ti fa vedere la riga di codice e il punto esatto ( ^ ) dove compare il simbolo non trovato.

    Quindi lui ti sta dicendo che tu hai scritto "Collection" ma che lui non sa cosa sia, e questo, quando avrai un po' di pratica, è eloquente: non hai "importato" la classe Collection... manca l'import.

    Secondo errore:
    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class string
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
               ^
    Di nuovo: cannot find symbol. Stavolta il simbolo è la scritta "string". In questo caso è banale: il nome della classe è stato scritto male perchè è in minuscolo, mentre i nomi delle classi (nel core standard di Java) sono tutte con la maiuscola

    Terzo errore:
    codice:
    ForeachTest.java:5: cannot find symbol
    symbol  : class ArrayList
    location: class ForeachTest
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
                                  ^
    Di nuovo... cannot find symbol. Sta volta il simbolo è "ArrayList". Il nome della classe è scritto giusto, quindi significa solo che non trova tale classe... ed infatti, manca l'import.


    Ciao.
    Grazie mille delle spiegazioni, non ho parole lo hai spiegato alla perfezione... ora mi devo solo impegnare per andare avanti e approfondire; l'esempio che c'è nella pagina che parla del for-each è complicato in quanto non erano state ancora spiegate bene le Collection(c'era pure scritto che sarebbero state approfondite in seguito), ma credevo comunque di poter riuscire a provare l'esempio.

    Grazie a te comunque ho imparato a interpretare meglio i primi messaggi di errore.

    Ciao alla prossima, sei stato gentilissimo!

Tag per questa discussione

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.