Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Factory pattern sa genercis-ima

[es] :: Java :: Factory pattern sa genercis-ima

[ Pregleda: 3163 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

_owl_

Član broj: 318
Poruke: 1043
*.blueisp.co.yu.



+3 Profil

icon Factory pattern sa genercis-ima 25.02.2005. u 18:49 - pre 232 meseci
Zelim da napravim genericku factory klasu koja na osnovu tipa parametra treba da vrsi dinamicko ucitavanje neke druge klase. Problem je sto ne znam kako da tip parametra <T> pretvorim u string cija je vrednost run-time ime klase koja odgovara tom tipu. Evo kostura koda koji bi trebao da radi kreiranje objekata.
Code:

    public class GenericFactory<T> {
        public T createObject() {
            try {
                // Ovaj deo ne radi, prijavljuje se greska kod poziva toString() metode
                Class klasa=Class.forName("bla.bla." +T.toString() + "bla.bla.BLA");
                return klasa.newInstance();
            } catch (Exception e) {}
        }
    }


Probao sam da preko this.getClass().getTypeParameters() dodjem do imena tipa parametra ali bezuspesno.
Svaka pomoc je dobrodosla.
Owl
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.ipact.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Factory pattern sa genercis-ima25.02.2005. u 21:31 - pre 232 meseci
Ne koristim 1.5 pa ne mogu da ti pomognem oko generičkog programiranja; ali mi deluje da pošto je T ime tipa a ne promenljive, ne možeš da pozivaš metode preko T (zamisli npr. HashMap.toString(), šta bi to trebalo da bude?).

Imali smo na forumu C/C++ vrlo sličnu zabunu pre dan-dva. Osim toga, .toString() ti ne daje ime klase, već teksutalni zapis klase — što ne mora da ima bilo kakve veze sa imenom klase.

Tako da bih predložio da probaš:
Code:

 T.class.getName() 


umesto

Code:
T.toString()


Pišem napamet, što se često ovih dana dešava, al možda se nisam zeznuo. :)

f
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: Factory pattern sa genercis-ima 25.02.2005. u 22:15 - pre 232 meseci
Da, da napamet sam pisao poruku, sto se tice T.class to sam isto bio probao ali nece pa nece.
Owl
 
Odgovor na temu

samilen
Saša Milenković
Beograd

Član broj: 11606
Poruke: 106
*.etf.bg.ac.yu.



Profil

icon Re: Factory pattern sa genercis-ima 27.02.2005. u 20:46 - pre 232 meseci
Nisam najbolje shvatio pitanje jer još nisam našao vremena da se pozabavim generics-ima, ali evo jednog predloga za razmišljanje: this.getClass().getName()... umesto onog ...toString()... što će ti vratiti kompletnu putanju koja već ima bla.bla.bla... u sebi. Iseci sve posle zadnje tačke i ubaci ime klase koju hoćeš da instanciraš.
toString ti ne radi jer još nemaš instancu.
Ajde javi kako je ispalo rešenje.
 
Odgovor na temu

yes

Član broj: 27238
Poruke: 23
213.244.208.*



+1 Profil

icon Re: Factory pattern sa genercis-ima 27.02.2005. u 23:35 - pre 232 meseci
Pa ljudi?!? Polako!
Da li to T postoji at runtime???
NE!!!
To je imaginarni parametar da bi kompajler proverio da li tu može da "prođe" određeni tip i nista drugo.
 
Odgovor na temu

[es] :: Java :: Factory pattern sa genercis-ima

[ Pregleda: 3163 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.