Newsgroup: it.comp.java
Titolo: ricorsione

Di nuovo ciao a tutti!
Ho un problema e spero che possiate aiutarmi (a proposito, grazie per i
suggerimenti della volta scorsa: hanno funzionato!)
Ho definito un metodo all'interno di una classe e questo metodo viene
richiamato dentro al metodo stesso (una specie di funzione ricorsiva,
niente di particolarmente incasinato). Il problema e' che all'interno di
questo metodo c'e' una String che viene modificata e il nuovo valore
assunto mi serve che resti tale ad ogni richiamo del metodo invece ogni
volta che il metodo viene richiamato, la String riparte con il valore di
default (e non e' una cosa incomprensibile, anzi...). 
Vorrei pero' sapere come posso risolvere il problema, ovvero come posso
fare in modo che il valore di questa String non mi riparta da capo ad ogni
iterazione (il problema l'ho aggirato passando la stringa come paramentro
del metodo ma non mi piace e vorrei trovare un altro modo!)
Spero di essere stata chiara.
Grazie in anticipo a tutti
		Fede
                        ~~~~~~~
                       &(-O^O-)&
          -----oOOo-------(_)---------------
          |        FEDERICA CERRI           |
          |   e-mail: 
ce...@di.unipi.it
     |
          |           
ce...@cli.di.unipi.it
 |             
            -------------------------oOOo--
                        |_| |_|

 Spero di essere stata chiara.
Ma non ti chiami Federica? ;-)))))
ok, la mia facezia l'ho detta e passo al suggerimento: perche' non metti la
stringa come field della classe?
tipo:
class pippo
{
	private transient String stringa;
	void ricorrente()
	{
		//usa stringa, modifica stringa
		ricorrente();
	}
}
Okkio che non e' thread safe!
Se la vuoi fare thread safe la maniera migliore e' passare la stringa come
parametro
Saluti, Baci, Rocher, MonCheri, ma soprattutto Lindor!
-- 
. Simone Caldana - Technical Staff Member & Student            .
. Dipartimento di Informatica - Universita' di Torino          .
. Tel. 
+39 011 6706788
     E-Mail : 
Simone....@di.unito.it
 .
.      
+39 011 6706778
     Web URL: 
http://i.am/caldana
        .


Anche io spero di esserlo stato...
fammi sapere, lanciami un urlo se funziona, tanto sto dietro l'angolo (in via
Santa Maria)
Ciao
Andrea
vasa...@cli.di.unipi.it

 tipo:
poco object-oriented. Scusa, ma ho il prof. all'università che lo dice
tutti i giorni.
Ti comviene passarla come parametro, come
class pippo {
	public prima_chiamata(vari parametri) {
		String stringa;
		metodo_ricorsivo(parametri, stringa);
	}
	private metodo_ricorsivo(vari parametri) {
		....
		metodo_ricorsivo(vari parametri, String stringa);
	}
}
-- 
Non c'è più forza nella normalità: c'è solo monotonia.

del metodo ma non mi piace e vorrei trovare un altro modo!)
Passarlo come parametro e' il modo migliore: tieni presente che Java lavora a 
riferimenti, per cui non copi (quasi) nulla e la cosa non e' costosissima in 
termini di velocita' di esecuzione.
Se proprio vuoi (ma e' una soluzione in genere da evitare) puoi aggiungere un 
membro privato alla classe e usare quello (o, un filo meglio, dichiarare una 
classe "buffer" che contiene la String, in modo da mantenere piu' pulito il 
modello); non c'e' (come invece in C/C++) la possibilita' di dichiarare 
variabili locali static - che preservano il loro valore tra chiamate diverse. 
Quindi quello e' l'unico modo.
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

 tutti i giorni.
Questo ha un valore?


 Questo ha un valore?
beh, quando a furia di sentirlo ti esce dagli occhi, ti viene un impulso
irrefrenabile nel correggere eventuali codici non OO.... :-(
