Cambio nome varaibile in un ciclo

di il
2 risposte

Cambio nome varaibile in un ciclo

Buongiorno,
volevo chiedere se esiste una qualche funzione che può generare automaticamente il nome di una variabile in un ciclo

try {
	BufferedReader file = new BufferedReader(new FileReader("lista.txt"));
	String s;
	Commedia new_film=new Commedia(0, "", "", "");
	while((s=file.readLine()) != null) {
		String args[] = s.split(", ");
		new_film.setId(Integer.parseInt(args[0]));
		new_film.setTitolo(args[1]);
		new_film.setAnno(args[2]);
		new_film.setGenere(args[3]);
	}
	lista_film.add(new_film);
	file.close();
	System.out.println("Caricamento avvenuto con successo");
}catch(IOException e1){
	e1.printStackTrace();
}
Nel codice vorrei che la variabile new_film abbia ogni volta un nome diverso dato che, volendola caricare nell'ArrayList lista_film, in questo modo mi sovrascrive sempre lo stesso elemento.
Grazie per la disponibilità

2 Risposte

  • Re: Cambio nome varaibile in un ciclo

    LoryCave ha scritto:


    volevo chiedere se esiste una qualche funzione che può generare automaticamente il nome di una variabile in un ciclo
    [..]
    Nel codice vorrei che la variabile new_film abbia ogni volta un nome diverso
    Quello che hai appena detto non ha alcun senso.

    Anche perché l'errore (anzi, gli errori, se ho interpretato bene l'obiettivo) è che hai creato 1 solo oggetto Commedia fuori (prima) del while. E poi si presupporrebbe che ad ogni riga vuoi aggiungere un oggetto Commedia nella lista mentre ora il add lo fai una volta sola dopo il ciclo.

    Quindi più sensatamente (se l'obiettivo è quanto penso):
    while ( ....... ) {
        //...
        Commedia new_film = new Commedia( ..... passa i dati ....);
        lista_film.add(new_film);
    }
    Come vedi, NON c'è bisogno di inventarsi nomi vari. La variabile si chiama sempre new_film ma siccome è "locale" nel ciclo allora ... esiste distintamente per ciascun ciclo. E oltretutto ad ogni ciclo hai un NUOVO oggetto Commedia (questo è importante, non tanto dove è dichiarata la variabile).
  • Re: Cambio nome varaibile in un ciclo

    andbin ha scritto:


    Quello che hai appena detto non ha alcun senso.

    Anche perché l'errore (anzi, gli errori, se ho interpretato bene l'obiettivo) è che hai creato 1 solo oggetto Commedia fuori (prima) del while. E poi si presupporrebbe che ad ogni riga vuoi aggiungere un oggetto Commedia nella lista mentre ora il add lo fai una volta sola dopo il ciclo.

    Quindi più sensatamente (se l'obiettivo è quanto penso):
    while ( ....... ) {
        //...
        Commedia new_film = new Commedia( ..... passa i dati ....);
        lista_film.add(new_film);
    }
    Come vedi, NON c'è bisogno di inventarsi nomi vari. La variabile si chiama sempre new_film ma siccome è "locale" nel ciclo allora ... esiste distintamente per ciascun ciclo. E oltretutto ad ogni ciclo hai un NUOVO oggetto Commedia (questo è importante, non tanto dove è dichiarata la variabile).
    Ti ringrazio per la risporta. Ora funziona
Devi accedere o registrarti per scrivere nel forum
2 risposte