Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Copia oggetti java 1.4

  1. #1

    Copia oggetti java 1.4

    sALVE RAGAZZI,
    volevo sapere se era possibile avere una copia di un oggetto in java senza che le due reference puntino alla stessa locazione di memoria.

    allora nella classe dove definisco il mio oggetto ho creato il metodo popola(MioOggetto ogg)

    che non fa altro che fare per ogni variabile di istanza

    this.nomevariabile = ogg.getnomevariabile
    .........
    ..........
    .........




    quando voglio fare la copia dell'oggetto faccio cos'.


    MioOgetto nuovoOgg = new MioOggetto();
    nuovoOgg.popola(vecchiOggetto);

    quello che ottengo però è che qualsiasi modifica che faccio all'oggetto nuovo si riverbera anche su quello vecchio.

    L'unica cosa che mi viene il dubbio è che io per forza di cose devo utilizzare per forza la versione di java 1.4

    è possibile che in quella versione di java non era possibile copiare l'oggeto per valore ma solo per riferimento?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    No, non è un problema di versione di Java. Stai sicuramente sbagliando qualcosa.
    Se i campi dell'oggetto sono essi stessi degli oggetti, dovrai fare una copia anche di quelli... non usando l'operatore di assegnazione semplice, ma usando la clonazione. Altrimenti avrai due oggetti diversi, i cui campi, però, puntano agli stessi oggetti.


    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
    a tal proposito mi permetto di pubblicare un articolo di un blog (scritto in inglese) che mi ha semplificato di molto la vita in passato.

    link



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