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. ------------