Steven
Steven

Reputation: 4022

getting call hierarchy of a method using reflections

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????

Upvotes: 1

Views: 2192

Answers (4)

Bozho
Bozho

Reputation: 597362

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.

Upvotes: 3

Ha.
Ha.

Reputation: 3454

StackTraceElement[] stackTrace = new Throwable().getStackTrace();

Upvotes: 2

Maddy
Maddy

Reputation: 11

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.

Upvotes: 0

Stéphane
Stéphane

Reputation: 11904

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?

Upvotes: 0

Related Questions