Hallo,
heute würde ich gern, daß ein Java-Guru meinen Post
liest und mir eine Antwort auf meine Frage geben kann.
Um nicht bei jeder neuen Javaklasse das Rad neu zu erfinden habe
ich mir eine Library gebaut. Sie funktioniert genau so, wie ich es
mir wünschte.
Nun tritt aber ein Problem auf:
Ich benötige innerhalb einer dieser Libraryklassen die Aufruferklasse,
damit ich aus der Libraryklasse eine Methode der Aufruferklasse starten kann.
Die Libraryklasse liegt ja nicht im gleichen CLASSPATH, also kann sie die
Aufruferklasse nicht kennen. Soweit ist es mir klar.
Mein 1. Versuch innerhalb der Libraryklasse
die Aufruferklasse als Object übergeben und dann
aus diesem Object die aufrufende Klasse zu ermitteln.
Hat aber nicht geklappt.
Mein 2. Versuch innerhalb der Libraryklasse
die Aufruferklasse als String übergeben und dann
die Klasse mit Class.forName(s) zu ermitteln.
Hat auch nicht geklappt.
Gibt es dafür eine Lösung?
Gruß GBunge
heute würde ich gern, daß ein Java-Guru meinen Post
liest und mir eine Antwort auf meine Frage geben kann.
Um nicht bei jeder neuen Javaklasse das Rad neu zu erfinden habe
ich mir eine Library gebaut. Sie funktioniert genau so, wie ich es
mir wünschte.
Nun tritt aber ein Problem auf:
Ich benötige innerhalb einer dieser Libraryklassen die Aufruferklasse,
damit ich aus der Libraryklasse eine Methode der Aufruferklasse starten kann.
Die Libraryklasse liegt ja nicht im gleichen CLASSPATH, also kann sie die
Aufruferklasse nicht kennen. Soweit ist es mir klar.
Mein 1. Versuch innerhalb der Libraryklasse
die Aufruferklasse als Object übergeben und dann
aus diesem Object die aufrufende Klasse zu ermitteln.
Hat aber nicht geklappt.
Java:
public Xyz( String s, Object ob )
{ // Klasse ermitteln ----------
Class<> cl = Class.getClass( ob );
// Klassenmethode aufrufen ---
cl.abc( s + "xyz" );
}
Mein 2. Versuch innerhalb der Libraryklasse
die Aufruferklasse als String übergeben und dann
die Klasse mit Class.forName(s) zu ermitteln.
Hat auch nicht geklappt.
Java:
public TestClass( String s )
{
try{ Class exampleClass = Class.forName( s );
Object obj = exampleClass.newInstance();
obj.abc( "xyz" );
}
catch( ClassNotFoundException e)
{ System.out.println("Klasse nicht gefunden"); }
catch( InstantiationException e)
{ System.out.println("Klasse nicht instanziiert"); }
catch( IllegalAccessException e)
{ System.out.println("illegal Accsess"); }
}
Gibt es dafür eine Lösung?
Gruß GBunge