home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 September
/
Chip_2001-09_cd1.bin
/
chplus
/
java
/
Pokusy.java
< prev
next >
Wrap
Text File
|
2001-08-01
|
2KB
|
60 lines
// Soubor Pokusy.java
/* Trida pro pokusy s reflexi.
Obsahuje staticky inicializator, ktery vypise
zpravu pri zavedeni tridy do pameti, a metodu main().
Metoda main() ocekava jako parametr
retezec predstavujici
PLNE KVALIFIKOVANE JMENO TRIDY, KTEROU CHCEME ZAVEST
DO APMETI A JEJIZ METODU metoda() BUDEME VOLAT.
Metoda main() postupne zavede danou tridu do pameti,
vytvori jeji instanci,
ziska objekt predstavujici metodu metoda(int, double)
a tuto metodu zavola s parametry 3 a 6.6.
POZOR, volana metoda musi byt verejne pristupna (public)!
Jako priklad lze pouzit tridu pokus.Pomocna, kterou najdete
v souboru Pomocna.java. Ulozite-li prelozeny soubor Pomocna.class
do podadresare pokus (trida je v baliku pokus) a spustite-li program
prikazem
java Pokusy pokus.Pomocna
dostanete vystup
Hlasi se trida Pokusy
Hlasi se trida Pomocna
class pokus.Pomocna
Konstruktor tridy Pomocna
public void pokus.Pomocna.metoda(int,double)
Metoda volana s parametry 3 a 6.6
*/
import java.lang.reflect.*;
public class Pokusy {
static{ // Staticky inicializator
System.out.println("Hlasi se trida Pokusy");
}
public Pokusy() {
}
public static void main(String[] args) {
try {
Class c = Class.forName(args[0]); // Zavede tridu do pameti
System.out.println(c);
Object obj = c.newInstance(); // Vytvori novou instanci
Class [] cp = new Class[]{int.class, double.class}; // Pripravi parametry
Method m = c.getMethod("metoda", cp);// Ziska instanci tridy Method popisujici danou metodu
System.out.println(m);
m.invoke(obj, new Object[]{new Integer(3), new Double(6.6)}); // a zavola ji
}
catch(Exception e){
e.printStackTrace();
}
}
}