[JAVA] Trovare l'errore

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
matteo1095
Prode Principiante
Messaggi: 24
Iscrizione: giovedì 4 giugno 2015, 15:53
Sesso: Maschile

[JAVA] Trovare l'errore

Messaggio da matteo1095 »

Salve ragazzi sto facendo un programmino ma sto riscontrando un problema. La porzione di codice incriminata è questa:

Codice: Seleziona tutto

ArrayList<Cruciverba> cruci = new ArrayList<>();
for(String parola: dict_par.keySet()){
	rigeneraMatrice();
	addRadice(parola);
	if(controlla()==true){
	     Cruciverba c=new Cruciverba();
	     c.grid=this.grid;
	     c.current_words=this.current_words;
	     c.dict_par=this.dict_par;
	     cruci.add(new Cruciverba());
	}
}
Voglio fare in modo che ogni volta che la funzione controlla() ritorna true mi venga creato un nuovo oggetto di tipo Cruciverba con una determinata matrice, un determinato dizionario e determinate parole che gli vengono assegnate dopo. Il problema sta però che quando vado a stampare cruci tutti gli oggetti al suo interno sono uguali (stessa grid,stessa current_words,stessa dict_par) e nel caso di grid corrisponde proprio all'ultima grid generata dalla funzione, è come se così facendo avessi creato un reference. Come posso ovviare al problema? Graziee
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [JAVA] Trovare l'errore

Messaggio da Zoff »

Se grid è un oggetto puoi usare il metodo clone() per ottenere una copia: https://docs.oracle.com/javase/7/docs/a ... lone%28%29
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
matteo1095
Prode Principiante
Messaggi: 24
Iscrizione: giovedì 4 giugno 2015, 15:53
Sesso: Maschile

Re: [JAVA] Trovare l'errore

Messaggio da matteo1095 »

Ciao Zoff grazie per la risposta, ma grid è una semplice matrice con dei valori char
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [JAVA] Trovare l'errore

Messaggio da Zoff »

L'ultima volta che ho controllato in java array e matrici erano oggetti quindi non vedo il problema. :p

Codice: Seleziona tutto

char a[][] = {};
System.out.println(a instanceof Object); //Stampa true
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti