home *** CD-ROM | disk | FTP | other *** search
Java Source | 2001-08-01 | 1.8 KB | 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();
- }
- }
- }
-