views:

139

answers:

5

hi, i used java reflections to get methods from a class(loaded those classes).Now i want to get the call hierarchy of those methods.How can i use call hierarchy option in eclipse IDE for that?any examples or links????

A: 

You can use the StackTrace object.

But that looks very brittle to me as approach. Better avoid this kind of logic... Why not passing the caller as an argument to thé method?

Stephane
i need it for some checking purpose.How can i use StackTrace object for tis ??(didnt get you)
Steven
A: 

Throw an exception in the method which is at the root of the hierarchy. Then you can catch the exception and printStackTrace().

I'm sure there would be cleaner solution than this. But this would work too.

Maddy
+1  A: 
StackTraceElement[] stackTrace = new Throwable().getStackTrace();
Ha
+2  A: 

The solutions proposed is to use Thread.currentThread().getStackTrace() in order to obtain the current trace of callers.

However, you want to get this information not for the currently executing method, but for any method on any class. This can't be done easily. I think you have to inspect all classes on the classpath with a bytecode utility and match the calling instructions. Something you will spend too much time on, and I'm pretty sure it isn't needed, unless you are developing an IDE.

Anyway, you can get Eclipse or NetBeans sources and see how it is implemented there.

Bozho
+1 - I think this is what he is asking ... and I agree that it would be really difficult to implement, and expensive to run.
Stephen C
A: 

The solutions proposed is to use in VS2010.

http://blog.flair-systems.com/2010/05/c-fastfood-call-hierarchy-of-methods.html

Waleed Mohamed