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

    Esempio Cicli for e while, costrutti iterativi in Java problema

    Buongiorno è la prima volta che scrivo qui, vorrei chiedere visto che sto provando a imparare java una cosa della guida che riguarda il for each

    L'esempio è:
    codice:
    public class ForeachTest {
    
    public static void main(String[] args) {
    
    Collection<string> coll = new ArrayList<String>(); // <-- da errore qui
    
    // utilizziamo l'array degli argomenti con for-each
    // e popoliamo la collezione
    for(String tmp:args){
    coll.add(tmp);
    }
    
    // stampiamo la collezione
    for(String tmp:coll) {
    System.out.println(tmp);
    }
    }
    }
    ho provato a incollarlo in notepad ++, salvarlo come Foreachtest.java e compilandolo mi da errore... cosa sbaglio?


    Grazie!
    Ultima modifica di fabiossj; 11-07-2016 a 17:55

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Collection<String> coll = new ArrayList<String>();

    String è una classe, quindi va in maiuscolo.

    PS: Dovresti sempre riportare l'errore che ti dà il compilatore, altrimenti chi legge la discussione non sa che pesci pigliare (a me è caduto subito l'occhio su quel particolare, qualcun altro avrebbe potuto perderci delle ore).


    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

    grazie

    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Collection<String> coll = new ArrayList<String>();

    String è una classe, quindi va in maiuscolo.

    PS: Dovresti sempre riportare l'errore che ti dà il compilatore, altrimenti chi legge la discussione non sa che pesci pigliare (a me è caduto subito l'occhio su quel particolare, qualcun altro avrebbe potuto perderci delle ore).


    Ciao.
    Grazie mille, non l'avrei mai trovato... poi cercando in giro per la rete ho trovato che manca anche
    codice:
    import java.util.*;
    all'inizio, senza quello non lo compila.

    Sto provando a seguire la guida di html.it e cercando anche di provare gli esempi per vedere cosa succede e intanto imparare, se trovo errori all'inizio faccio molta fatica a risolverli..

    Grazie ancora!
    Ciao

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    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

  5. #5

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