Come si effettua in java il passaggio di parametri per "valore", inteso come veniva fatto in C? Per spiegarmi meglio: ho bisogno che ad un metodo venga passato come parametro la copia di un oggetto e non il reference come java fa...
Come si effettua in java il passaggio di parametri per "valore", inteso come veniva fatto in C? Per spiegarmi meglio: ho bisogno che ad un metodo venga passato come parametro la copia di un oggetto e non il reference come java fa...
In Java gli oggetti vengono passati solo per riferimento, non credo ci sia un sistema per mandarli anche per valore.Originariamente inviato da useralex
Come si effettua in java il passaggio di parametri per "valore", inteso come veniva fatto in C? Per spiegarmi meglio: ho bisogno che ad un metodo venga passato come parametro la copia di un oggetto e non il reference come java fa...
![]()
Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)
l'unico metodo che mi viene in mente per passare oggetti per valore è utilizzare il clone()
Example:
codice:public static void scambia(Integer i, Integer j){ Integer k=i; i=j; j=k; } public static void main(String args[]){ Integer n=new Integer(4); Integer n1=new Integer(2); scambia(n,n1); //ha effetto siccome gli oggetti sono per address scambia(n.clone(),n1.clone()); //non ha effetto siccome è per value }
Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!
Sì... l'unico modo per poter "passare per valore" un oggetto ad un metodo è quello di costruirne una copia!
Ciò può essere fatto utilizzando il metodo clone(), per quelle classi che implementano Cloneable, oppure costruendo un nuovo oggetto, copia del primo, utilizzando i metodi (eventualmente il costruttore) previsti.
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