Ich habe ein großes red5-Projekt und es scheint, dass an irgendeinem Punkt eine Funktion ausgeführt wird. Ich habe versucht, in meinem Code herauszufinden, wie es kommt, dass diese spezielle Funktion an diesem Punkt ausgeführt wird, und ich konnte sie nicht finden. Ich möchte herausfinden, was sie aufruft.
Ich habe die Antworten in Stackoverflow durchgelesen und folgendes gefunden, um die Stack-Trace-Informationen der aktuellen Position anzuzeigen.
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
for (int i=0;i<elements.length;i++) {
log.error(elements[i].toString());
}
und ich erhielt die folgende Ausgabe:
java.lang.Thread.getStackTrace(Thread.java:1479)
component.lobby.LobbyMysql.getChallenges(LobbyComponentMysql.java:76)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.commons.beanutils.BeanMap.get(BeanMap.java:390)
org.red5.io.amf.Output.writeObject(Output.java:357)
org.red5.io.object.Serializer.writeObjectType(Serializer.java:300)
org.red5.io.object.Serializer.writeComplex(Serializer.java:140)
org.red5.io.object.Serializer.serialize(Serializer.java:86)
org.red5.io.amf.Output.writeObject(Output.java:357)
org.red5.io.object.Serializer.writeObjectType(Serializer.java:300)
org.red5.io.object.Serializer.writeComplex(Serializer.java:140)
org.red5.io.object.Serializer.serialize(Serializer.java:86)
...
Ich erhalte den Namen der Funktion, die ausgeführt wird, aber die obersten Ebenen aus irgendeinem Grund sind Reflexionsklassen. Gibt es eine Möglichkeit, die tatsächliche Methode herauszufinden, die diese spezifische Funktion aufruft?
Ich bin nicht auf Java und Reflexionen so bitte mit mir zu tragen :)
danke