Here is my sample java code:
public class Test {
public static void main(String[] args) {
methodDepth0(
()->
methodDepth1(
()->
methodDepth2()
)
);
}
static Object methodDepth2() {
return null;
}
interface MyIF {
void call();
}
static void methodDepth0(MyIF myIf){
myIf.call();
}
interface MyIF2 {
void call();
}
static void methodDepth1(MyIF2 myIf2){
myIf2.call();
}
}
When I open call hierarchy of method methodDepth2()
from Eclipse(4.4),
open call hierarchy
stop searching next caller:
What I expect is like opening call hierarchy of method methodDepth1()
which show until the main
method.
From what I can tell the lack of call hierarchy depth is due to (re)evaluation of code at runtime. It is explained in 15.27.4 Run-Time Evaluation of Lambda Expressions in the Java Language Specification.
At run time, evaluation of a lambda expression is similar to evaluation of a class instance creation expression, insofar as normal completion produces a reference to an object. Evaluation of a lambda expression is distinct from execution of the lambda body.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With