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!