[Java lista] egyszerű kérdés :)

sashee gsashee at gmail.com
2009. Aug. 16., V, 18:53:34 CEST


Hello!

Pedig az interfacet pont erre talaltak ki, a legjobb az lenne, ha a
buildet modositanatok hozza szerintem. Ha vegkepp nem megy, akkor
reflectionnel meg tudod hivni a kivant fuggvenyt, ahhoz nincs szukseg
castolasra(getClass().getMethod().invoke()). Nem a legszebb megoldas,
de mukodni fog.

sashee

2009/8/16 Huj Tamás <hujtomi at gmail.com>:
> sziasztok!
>
> van 3 osztályom:
> osztA
> osztB
> osztC
>
> az osztályok majdnem teljesen ugyanolyanok csak üzleti szempontok
> miatt kellett különválasztani őket, de a tagváltozóik és a metódusaik
> nagy része megegyezik.
>
> és van egy Collectionom a példa kedvéért legyen egy lista.
>
> van egy metódusom ami ilyen típusú listákat dolgoz fel, és csak olyan
> metódusokat hív ami mind a 3 osztályban megvan, és most a feldolgozó
> függvénynél gyakorlatilag meg kell háromszorozni a kódot mert a
> megfelelő osztályra kell castolni. Valahogy így:
>
>    public void feldolgoz(List lista){
>
>        Iterator iterator = lista.iterator();
>
>        while(iterator.hasNext()){
>            Object o = iterator.next();
>
>            if(o instanceof osztA){
>             ((osztA)o).metodus1()
>            } else if(o instanceof osztB){
>             ((osztB)o).metodus1()
>            } else if(o instanceof osztC){
>             ((osztC)o).metodus1()
>            }
>        }
>
>    }
>
> Ha egy közös itnerfészt implementálnának az osztályok akkor nem
> kellene a kódot megháromszorozni, és az jó lenne. De az a baj, hogy
> ezeket az osztályokat egy keretrendszer generálja egy ant-os buildelés
> során, és nem szabad belenyúlni a kódba, mert mindig úgyis
> újragenerálódik.
>
> Vajon meg lehetne oldani interfész nélkül ezt a problémát úgy hogy ne
> kellejen egy csomó helyen megháromszorozni a kódot?
>
> üdv,
> Tomi
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


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