Posted By: Neuromancer (... bright eyes ...) on 'CZprogram' Title: Re: Java Date: Fri Jan 31 23:56:56 2003 > > Ahoj, > zacinam s Javou a narazil jsem na pro me neprekonatelny problem. Btw jde o > verzi1.3, na te to musi jet. > Mam nekolik trid ktere jsou 'zvenci' stejne, vsechny obsahuji pouze jednu > metodustejneho jmena a parametru. Nekolik -- asi sto. Potom mam metodu, > ktera > mi podle > okolnosti vraci jmeno tridy, jejiz metodu mam prave zavolat. > > Cili potrebuju zavolat metodu [znameho jmena a volani] TRIDY, jejiz JMENO > mam > v promenne. Nasel jsem si loadClass, ale nedari se mi to zkompilovat: > > import java.lang.reflect.Method; > > class ClassLoader > { > public void invokeClass(String name,String[] args) > { > Class c = loadClass(name); > Method m=c.getMethod("f",new Class[] { args.getClass() }); > } > } > > [dzon@alf java]$ javac -d . l.java > l.java:10: cannot resolve symbol > symbol : method loadClass (java.lang.String) > location: class cz.o.l.ClassLoader > Class c = loadClass(name); > ^ > 1 error > > Byl by nekdo tak laskavy a ukazal mi kousek kodu kde se vola rekneme metoda > int m(String s) > tridy, jejiz jmeno je ulozeno ve Stringu CL? Ja ti asi moc neporadim, protoze s javou taky vicemene zacinam, ale napada me jine reseni, o kterem vim ze fu nguje, protoze jsme ho pouzival. Muzes tridu nahrat (pokud je lokalne na disku, na applety by to mozna nefungovalo.. nebo jo?) takhle: Class c; try{ c = Class.forName( "com.bla.secret.classname" ); } catch (ClassNotFoundException e) { //whatever } //tu muzes treba udelat newInstance nebo to getMethod.. Jinak na tvem priklade mi primarne pripadne spatne to, ze volas globalni funkci, coz v jave neexistuje (pokud jsi tedy nevynechal cast zdrojaku a ta tva trida od neceho nededi). No, treba jsem ti pomohl, a jestli ne, urcite se ozve nekdo zkusenejsi. > > -Dzon > > ** Masochisticke prirozene sklony nejsou sice zakladni podminkou ** > ** k pouziti Windows, ale velice pomahaji ** --------------------------------------------------------------------/ | ICQ 20529980 Neuromancer | | Take me far away, where the dragons fly, | /------------ leave me to my dreams, or just let me die. ------------