T
tuxedo
Gast
Hallo,
versuche mich gerade etwas am Thema Reflection. Dabei hat sich mir, trotz googelns, folgende Frage gestellt:
Kann man mittels Reflection (oder sonstwie) eine Instanz eines Objekts erzeugen das ein beliebiges Interface implementiert?
Beispiel:
Das Interface
Normalerweise würde man dann z.B. sowas hier machen:
Was aber, wenn ich den Namen des Interfaces erst zur Laufzeit bekomme?
Ich hab gelesen wie man beliebige Klassen instanziiert und auch auf die Methoden zugreifen kann etc.. Aber was wenn ich ein Interface zur Laufzeit in ein Objekt formen möchte und darin die Methodenaufrufe "weiterleiten" möchte?
Hintergrund:
Ich möchte eine RMI ähnliche Client-Server Kommunikation basteln. Und da muss ich am Client ein Serverobjekt haben das Methodenaufrufe entgegen nimmt. Diese werden dann <irgendwie> übers Netzwerk übertragen und dann im Server ausgeführt. Das Ergebnis des Aufrufs (der Returnwert) wird dann ja, wie bei RMI wieder zurück an den CLient übertragen und in das "return" der dort aufgerufenen Server-Methode zurück implantiert.
Any ideas? Hat vielleicht jemand nen Link für mich der mich da weiterbringen könnte? Oder ist da jemand so fit drin dass er n Beispielcode posten kann?
- Alex
versuche mich gerade etwas am Thema Reflection. Dabei hat sich mir, trotz googelns, folgende Frage gestellt:
Kann man mittels Reflection (oder sonstwie) eine Instanz eines Objekts erzeugen das ein beliebiges Interface implementiert?
Beispiel:
Das Interface
Code:
public interface MyInterface {
public void myMethodA();
}
Normalerweise würde man dann z.B. sowas hier machen:
Code:
new MyInterface(){
@Override
public void myMethodA() {
// do something
}
};
Was aber, wenn ich den Namen des Interfaces erst zur Laufzeit bekomme?
Ich hab gelesen wie man beliebige Klassen instanziiert und auch auf die Methoden zugreifen kann etc.. Aber was wenn ich ein Interface zur Laufzeit in ein Objekt formen möchte und darin die Methodenaufrufe "weiterleiten" möchte?
Hintergrund:
Ich möchte eine RMI ähnliche Client-Server Kommunikation basteln. Und da muss ich am Client ein Serverobjekt haben das Methodenaufrufe entgegen nimmt. Diese werden dann <irgendwie> übers Netzwerk übertragen und dann im Server ausgeführt. Das Ergebnis des Aufrufs (der Returnwert) wird dann ja, wie bei RMI wieder zurück an den CLient übertragen und in das "return" der dort aufgerufenen Server-Methode zurück implantiert.
Any ideas? Hat vielleicht jemand nen Link für mich der mich da weiterbringen könnte? Oder ist da jemand so fit drin dass er n Beispielcode posten kann?
- Alex