Problem mit Reflection

FreundDerS0nne

Grünschnabel
Hallo,

ich habe an der Uni eine Aufgabe bekommen, bei der ich nicht weiter weiß. Ich habe eine .class-Datei (Ujo.class) und soll von dieser mittels Reflection rausbekommen, was für Methoden etc. die Klasse hat. Im Tutorium haben wir gesagt bekommen, wir sollen das mit
Code:
Class c= Class.forName("...");

machen. Unser Code sieht bis jetzt so aus:

Code:
public class Main {

    public static void main(String[] args) {
        try{
            Class c = Class.forName("Ujo");
        }catch(Throwable e){
            System.err.println(e);
        }
    }
}

Dabei wird immer eine ClassNotFoundException geworfen. Frage: Wie geben wir den Pfad zu Ujo.class an und wo muss die Datei liegen?

Ich hoffe jemand kann mir helfen :)
 
Die Klasse muss im Buildpath vorhanden sein und der forName-Methode muss dann der vollqualifizierte Pfad zur Klasse angegeben werden (also mit Paket).

Java:
    ...
    Class c = Class.forName("meinPaket.Ufo");
    ...

Wegen den Methoden schau mal hier:

» Class#getDeclaredMethods()
 
Wenn nicht frag doch mal deine Gruppenmitglieder.
In der Vorlesung hat er zumindest relevante Methoden des Programms vorgestellt.
Also die Java Api sollte weiterhelfen, da stehen alles Methoden und deren Benutzung drin.
 
Hallo.

Danke ersteinmal für die Antworten. In der Vorlesung waren die Klassen in Eclipse schon rein geladen. Mein Problem ist wohl nur die .class-Datei in das Package rein zu bekommen, damit ich über "MeinPackage.Ujo" darauf zugreifen kann. Der Rest dürfte kein Problem sein.
 
Problem gelöst:

Bei mir musste die Ujo Datei nicht bei der Javadatei liegen, sondern im Ordner des Packages. Also im Filesystem in /workspace/package/Ujo.class und nicht in /workspace/package/serie4/Ujo.class
 

Neue Beiträge

Zurück