Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Java] Come copiare automaticamente campi omonimi da un oggetto ad un altro?

    Ciao,
    se ho una situazione del genere: ho un oggetto chiamato result di tipo Indirizzo che ha determinati campi..

    Poi ho un altro oggetto chiamato indirizzo(ricevuto da un web servies) di un altro tipo ma che al suo interno ha gli stessi campi (al più con qualche differenza sui tipi

    C'è modo di copiare automaticamente TUTTI i valori dei campi dell'oggetto indirizzo dentro gli omonimi campi dell'oggetto result?

    Per far capire io faccio così:

    [code]
    private static Indirizzo popolaIndirizzi(
    it.accenture.danni.services.AnagraficaServicesServ iceStub.Indirizzo indirizzo) {
    Indirizzo result=new Indirizzo();
    result.setCap(indirizzo.getCap());
    result.setCodiceTipoIndirizzo(indirizzo.getCodiceT ipoIndirizzo());
    result.setComune(indirizzo.getComune());
    result.setDataFineValidita(indirizzo.getDataFineVa lidita().getTime());
    result.setDataInizioValidita(indirizzo.getDataIniz ioValidita().getTime());
    result.setDenomazioneIndirizzo(indirizzo.getDenomi nazioneIndirizzo());
    result.setLocalita(indirizzo.getLocalita());
    result.setNumeroCivico(indirizzo.getNumeroCivico() );
    return result;
    }
    [code]

    Ricevo come parametro del metodo un oggetto di tipo: it.accenture.danni.services.AnagraficaServicesServ iceStub.Indirizzo (l'oggetto rievuto dal web services) e copio i valori di tutti i campi negli omonimi campi dell'oggetto result che ha un tipo differente.

    Le uniche differenze sono che alcuni campi nel tipo di destinazione vogliono un Date e non un Calendar, ed ho aggiustato la cosa caggiungendo un getTime()

    Esiste un modo automatico per copiare i campi (ed eventualmente specificare solo i campi da aggiustare, come in questo caso quelli che vogliono il getTime()) ?

    Mi avevano parlato di una libreria Apache che dovrebbe fare qualcosa del genere?

    Qualcuno ne sà qualcosa?

    Grazie
    Andrea

  2. #2
    Di librerie non ne conosco ma è abbastanza semplice impletarlo tramite Reflection; ti posto il link del tutorial della sun/oracle

  3. #3
    A me è capitato, per lavoro, di utilizzare dozer, ma utilizzando ovviamente la reflection il decadimento prestazionale è molto elevato.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Originariamente inviato da satifal
    A me è capitato, per lavoro, di utilizzare dozer, ma utilizzando ovviamente la reflection il decadimento prestazionale è molto elevato.
    Sicuramente è onerosa come operazione, cmq suppongo che anche le librerie di terze parti la usino altrimente non vedo il modo di farlo

  5. #5
    Originariamente inviato da francesco.muia
    Sicuramente è onerosa come operazione, cmq suppongo che anche le librerie di terze parti la usino altrimente non vedo il modo di farlo
    Infatti io mi riferivo alla libreria (dozer) in questione. Ovviamente la reflection è l'unico modo per automatizzare tale operazione di copia.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    sorry satifal, avevo capito male

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.