[Java lista] Perzisztalt POJO klonozasa

Istvan Benedek istvan.benedek at gmail.com
2009. Jún. 23., K, 00:36:13 CEST


valami hasonloval nem lehet ?

public class CloneFactory<T extends Serializable> {

    public T clone(T instance) throws IOException, ClassNotFoundException {
        ByteArrayOutputStream byteArrayOutputStream = new
ByteArrayOutputStream(
                1);
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(
                byteArrayOutputStream);

        objectOutputStream.writeObject(instance);
        ByteArrayInputStream byteArrayInputStream = new
ByteArrayInputStream(
                byteArrayOutputStream.toByteArray());
        ObjectInputStream objectInputStream = new ObjectInputStream(
                byteArrayInputStream);
        return (T) objectInputStream.readObject();

    }
}

Termeszetesen az osztalyodnak Serializablenek kell lennie.. de talan ez nem
olyan nagy megkotes.

Istvan
2009/6/22 sashee <gsashee at gmail.com>

> Hello!
>
> Hat, ha semmilyen szep megoldas nincs ra, akkor szerintem jarhato ut
> az, ha reflectionnel letrehozol belole egy uj peldanyt, aztan
> vegigmesz a setteken, gettereken(vagy akar egybol a fieldeken) es
> szepen beallitgatod oket. Ezzel lesz egy teljesen altalanos metodusod,
> amely visszaadja a klont. Ha generikusan irod meg, akkor meg
> kasztolgatni sem kell.
>
> sashee
>
> 2009/6/22 Istvan Benedek <istvan.benedek at gmail.com>:
> > A lustasag fel egeszseg.. mindenesetre erdekelne a megoldas.. barmennyire
> is
> > elveim ellen valo..
> >
> > Istvan
> >
> > 2009/6/22 Stef <stefhun at gmail.com>
> >>
> >> Sziasztok!
> >>
> >> Létezik valami egyszerű megoldás arra, ha egy perzisztált POJO-t akarok
> >> klónozni?
> >> Gondolok itt arra, hogy van rengeteg property-je a pojo-knak és nem
> >> akartam első körben egy halom kódot írni set-get-ek egybeágyazásával az
> >> összes osztályban, hanem mondjuk egy clone() függvény, ami visszatér az
> >> aktuális object tulajdonságaival, de ami már nem számít az eredetinek.
> Ez
> >> azt feltételezi, ha ezt az új ojjektumot perzisztálom, akkor egy új
> rekord
> >> keletkezik az rdbms-ben....
> >>
> >> Üdv!
> >> Stef
> >>
> >>
> >> _______________________________________________
> >> Javalist mailing list
> >> Javalist at javagrund.hu
> >> http://javagrund.hu/mailman/listinfo/javalist
> >>
> >
> >
> >
> >
> > _______________________________________________
> > Javalist mailing list
> > Javalist at javagrund.hu
> > http://javagrund.hu/mailman/listinfo/javalist
> >
> >
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>



-- 
Best regards,
István Benedek
Sr. Software Engineer


B2 International Ltd.
Budapest office, Hungary (GMT+1)

Madach Square 3, Floor 3
1075 Budapest
Hungary

Cell phone          : +36 (70) 375-4286

Office phone
E-mail               : ibenedek at b2international.com
Homepage          : http://www.b2international.com
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20090623/e1ea6c1c/attachment.html 


További információk a(z) Javalist levelezőlistáról